A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qq8921310 高级黑马   /  2014-10-7 10:25  /  990 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有没有解释一下,为什么运行结果是这样的。

QQ截图20141007102250.png (149.63 KB, 下载次数: 5)

QQ截图20141007102250.png

QQ截图20141007102316.png (48.65 KB, 下载次数: 4)

QQ截图20141007102316.png

3 个回复

倒序浏览
我发现是初始化的问题。那么为什么初始化以后就不能体现随机性了?
回复 使用道具 举报
在后面的多次运行中发现仍然会出现问题。
就改动private int x=0:尝试int x;     int x=0; private int x;
多次重复运行。发现大部分都出现上面的结果..就考虑不是这里的问题。

就在锁上面一行添加了sleep,发现不论怎么改动 上面的代码。两个线程都会交替出现。
所以与是否初始化无关。只是自己机器的问题。
那么问题来了、

这样思考对不对。????
回复 使用道具 举报
如果你在main函数中都start了,也没有单独让某一个进程wait()或sleep()的话。打印出来这种结果很正常,因为你的CPU很快,而且在做着快速的切换动作。sleep只是一个叫这个程序运行得慢一点而已,交替出现依然是会有的。除非你把那个.start()改成.run(),但是这样一来,它就不是多线程了,而单单是一种调用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马