黑马程序员技术交流社区
标题:
为什么用了sleep在线程中结果可能发生改变
[打印本页]
作者:
不安分的程序猿
时间:
2016-5-17 23:26
标题:
为什么用了sleep在线程中结果可能发生改变
private int ticket = 100;
@Override
public void run() {
while (true) {
synchronized ("lock") {
if (ticket > 0) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()
+ "正在卖剩余的最后" + ticket-- + "张票");
}
}
}
复制代码
在模拟售票窗口时 加了sleep和不加sleep结果有不小的差异
但是sleep也是相对时间一起执行,为何会有差异
作者:
代码是什么
时间:
2016-5-17 23:50
这个是CPU的,跟睡眠没关系.
作者:
我有上将潘凤
时间:
2016-5-17 23:56
没什么差异啊,除了睡觉的多了几个负数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2