62,620
社区成员
发帖
与我相关
我的任务
分享package sample;
class Sum implements Runnable{
/*String name;
Sum(String name){
this.name=name;
}*/
@SuppressWarnings("unused")
public void run(){
int sum=0;
for(int i=1;i<=20;i++){
sum+=i*(i+1);
}
}
}
class dq implements Runnable{
public void run(){
System.out.println();
}
}
public class Dxc {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}package test003;
public class Dxc {
public static void main(String[] args) {
queuesum q=new queuesum();
Sum ss=new Sum(q);
dq dd=new dq(q);
new Thread(ss).start();
new Thread(dd).start();
}
}
class Sum implements Runnable{
queuesum q;
public Sum(queuesum q){
this.q=q;
}
public void run(){
while(true){
q.calsum();
}
}
}
class dq implements Runnable{
queuesum q;
public dq(queuesum q){
this.q=q;
}
public void run(){
while(true){
q.getsum();
}
}
}
class queuesum{
int sum;
boolean flag=false;
public synchronized void calsum(){
if(!flag){
sum=0;
for(int i=1;i<=20;i++){
sum+=i*(i+1);
try {
Thread.sleep(100);
} catch (Exception ee) {
ee.printStackTrace();
}
}
System.out.println("calsum OK!");
flag=true;
notify();
}
try
{
wait();
}
catch(Exception ee){
ee.printStackTrace();
}
}
public synchronized void getsum(){
if(!flag){
try
{
wait();
}
catch(Exception ee){
ee.printStackTrace();
}
}
flag=false;
notify();
System.out.println("sum="+sum);
}
}
