这样不是两个共享run资源吗,为啥也是输出20个呢

这样不是两个共享run资源吗,为啥也是输出20个呢

        ThreadTest1 tt1=new ThreadTest1(); 
        Thread th1=new Thread(tt1); 
        th1.start(); 
        Thread th2=new Thread(tt1);

        th2.start();

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

请问同学的代码是如何实现的呢,如果for循环中是循环20次,输出的也是20次哦,如果不是同学想要的答案,建议你将代码完整的粘贴到我要回答中,方便老师具有针对性的为你解答,祝学习愉快~

  • 努力学习的我 提问者 #1
    就是说成员都是共享资源,对吗,如果在循环判断里的,或是代码块里的局部变量,都不算共享资源
    2019-01-07 17:05:48
  • 努力学习的我 提问者 #2
    就是我不太理解为啥int i当属性的时候,输出就是10次了,局部变量就是20次
    2019-01-07 17:06:54
  • chrismorgen 回复 提问者 努力学习的我 #3
    如果int i当属性时,是两个线程共同使用变量i,如果定义为局部变量,那么就是两个线程各使用一个变量i,如果有3个线程,就是3个线程各使用一个变量,因为每个线程都会调用run方法,那么int i =10;就会被初始化10此,如果是类的属性的话,只会初始化一次,祝学习愉快~
    2019-01-07 18:39:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师