shibuyarin
2017-10-17 12:49多线程经典案例 卖票问题的一个疑问
public class test{
public static void main(String arg[]){
MyThread my = new MyThread();
new Thread(my,"seller A").start();
new Thread(my,"seller B").start();
new Thread(my, "seller C").start();
}
}
class MyThread implements Runnable{
private int ticket =5;
@Override
public void run() {
for (int x=0;x
if(this.ticket>0) {
try {
Thread.sleep(100);
}catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+
" sell,ticket " + this.ticket--);
}
}
}
}
既然JMM的机制是各个线程单独将主存中的数据拷贝进独立的cache中,那为什么还会出现 sell ticket -1 这种情况?
- 点赞
- 回答
- 收藏
- 复制链接分享
2条回答
为你推荐
- python threading多线程的一个小问题。
- python
- 3个回答
- Java多线程模拟售票问题
- java
- 4个回答
- 多线程同时访问同一个成员变量的问题
- java
- intellij-idea
- 1个回答
- 一个多线程共享变量的问题,请教下大家
- 共享变量
- 多线程
- 0个回答
- Java多线程问题,线程没被执行的问题
- java
- 线程
- 多线程
- 6个回答