设计4个线程,其中两个线程每次对j增加1,另外两个线程每次对j减少1
http://wenda.so.com/q/1373361565064540这里有代码。我主要有两个问题,1、一个Factory类的意义?是为了生产一个变量j吗?那为什么...
http://wenda.so.com/q/1373361565064540
这里有代码。
我主要有两个问题,1、一个Factory类的意义?是为了生产一个变量j吗?那为什么不能直接用全局变量j?
2、在T1、T2构建时,都创建了Factory实例,并赋值为Null。是不是赋值为Null的话就不会执行j=0语句?
3、对于4个线程thread1、thread2、thread3、thread4是不是随机调用同步方法min()、add()?也就是调用未被sleep的那个方法? 展开
这里有代码。
我主要有两个问题,1、一个Factory类的意义?是为了生产一个变量j吗?那为什么不能直接用全局变量j?
2、在T1、T2构建时,都创建了Factory实例,并赋值为Null。是不是赋值为Null的话就不会执行j=0语句?
3、对于4个线程thread1、thread2、thread3、thread4是不是随机调用同步方法min()、add()?也就是调用未被sleep的那个方法? 展开
展开全部
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。public class ThreadTest1{ private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;i++){ Thread t=new Thread(inc); t.start(); t=new Thread(dec); t.start(); } } private synchronized void inc(){ j++; System.out.println(Thread.currentThread().getName()+"-inc:"+j); } private synchronized void dec(){ j--; System.out.println(Thread.currentThread().getName()+"-dec:"+j); } class Inc implements Runnable{ public void run(){ for(int i=0;i<100;i++){ inc(); } } } class Dec implements Runnable{ public void run(){ for(int i=0;i<100;i++){ dec(); } } }}
求采纳为满意回答。
求采纳为满意回答。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询