永发信息网

public class ThreadSafeTest implements Runnable {.....tickets-1 tickets-2怎么也输出了啊??

答案:2  悬赏:70  手机版
解决时间 2021-03-15 20:49
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-03-15 12:43
public class ThreadSafeTest implements Runnable {
int num = 10;

public void run() {
while (true) {
if (num > 0) {
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("tickets" + num--);
}

}

}// /run

public static void main(String[] args) {
// TODO 自动生成的方法存根
ThreadSafeTest t = new ThreadSafeTest();
Thread A = new Thread(t);
Thread B = new Thread(t);
Thread C = new Thread(t);
Thread D = new Thread(t);
A.start();
B.start();
C.start();
D.start();

}

}
//////////////////////////

tickets10
tickets9
tickets8
...........

tickets1
tickets0
tickets-1
tickets-2
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-03-15 14:14
if里面的代码块没有锁,多线程时候会有并发问题,比如num=1的时候,刚好线程ABC都已经进入if代码里面了,这时候结果就是负数了
全部回答
  • 1楼网友:北方的南先生
  • 2021-03-15 14:33
没看懂什么意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯