为了账号安全,请及时绑定邮箱和手机立即绑定

java多线程。。。。。

java多线程。。。。。

莫回无 2018-07-29 14:14:34
为什么结果会出现负的情况? public class MyThreadTest { public static void main(String[] args) { MyThread m=new MyThread(); Thread t1=new Thread(m,"线程1"); Thread t2=new Thread(m,"线程2"); Thread t3=new Thread(m,"线程3"); Thread t4=new Thread(m,"线程4"); t1.start(); t2.start(); t3.start(); t4.start();} }class MyThread implements Runnable{ private int sum=10; private Object lock=new Object(); @Overridepublic void run() {     while(sum>0) {           //锁               synchronized (lock) {                   System.out.println(Thread.currentThread().getName()+" "+sum);                      sum--;                      }                      }                      }                  }
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

lock要用全局对象。不然各个线程各自减sum


查看完整回答
反对 回复 2018-08-09
  • 1 回答
  • 0 关注
  • 709 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信