设计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的那个方法?
展开
 我来答
kkkGm丶TA0193
2014-06-27 · TA获得超过139个赞
知道答主
回答量:125
采纳率:100%
帮助的人:159万
展开全部
以下程序使用内部类实现线程,对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(); } } }}
求采纳为满意回答。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式