Java没有死循环,能正常终止,与书中说的不一致??

java1.8  win7  64位

javaeffective第66条:

如果改成如下,则程序不终止:



#Java#
全部评论
我猜测,因为加入打印操作,线程需要切出去打印。产生了中断。所以有查探状态的可能,从而中止。
点赞 回复 分享
发布于 2019-05-08 22:27
你这个不能死循环呀
点赞 回复 分享
发布于 2019-05-08 21:45
m
点赞 回复 分享
发布于 2019-05-08 22:14
Print 函数自带同步,会直接锁住输出流变量,可能会访问主存。
点赞 回复 分享
发布于 2019-05-08 23:12
Print源码带synchronized的,然后再结合sych原理,当main锁住变量后就刷新到了内存,这个时候就刚好死循环运行到了63514
点赞 回复 分享
发布于 2019-05-08 23:15
sout的问题,忘记在哪本书上看到过,我当时也搞了好久
点赞 回复 分享
发布于 2019-05-08 23:26
确实会终止循环,但把while里面打印语句删除就会一直运行下去了,不知道为什么
点赞 回复 分享
发布于 2019-05-08 22:08
你的虚拟机可能运行在client模式下。
点赞 回复 分享
发布于 2019-05-08 23:16
点赞 回复 分享
发布于 2019-05-08 23:16

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务