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
public class ThreadSafeTest implements Runnable {.....tickets-1 tickets-2怎么也输出了啊??
答案:2 悬赏:70 手机版
解决时间 2021-03-15 20:49
- 提问者网友:那叫心脏的地方装的都是你
- 2021-03-15 12:43
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-03-15 14:14
if里面的代码块没有锁,多线程时候会有并发问题,比如num=1的时候,刚好线程ABC都已经进入if代码里面了,这时候结果就是负数了
全部回答
- 1楼网友:北方的南先生
- 2021-03-15 14:33
没看懂什么意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯