设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。考虑到线程的安全性写出程序。

public  class Demo1{
public int i=1;
public static void main(String[] args){
Demo1 d=new Demo1();
Add a=d.new Add();
Sub s=d.new Sub();
for(int j=0;j<3;j++){
Thread t=new Thread(a);
Thread t1=new Thread(s);
t.start();
t1.start();
}
}
public  synchronized void add(){
i++;
System.out.println("加法运算:"+i);

}
public synchronized void sub(){
i--;
System.out.println("减法运算:"+i);

}
class Add implements Runnable{


@Override
public void run() {
// TODO Auto-generated method stub
add();
}

 
}class Sub implements Runnable{


@Override
public void run() {
// TODO Auto-generated method stub
sub();
}
}

}

你可能感兴趣的:(设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。考虑到线程的安全性写出程序。)