赞了回答2017-04-26
可以参考如下三个代码:其中第一个和你的情况一样,由于多线程的可见性问题,可能导致无限循环下去。第二个是使用synchronized解决此问题,大多数工作场景用这个好第三个是使用volatile解决,但这个关键字只保证可见性,在实际场景中局限性比较大,得慎用
赞了回答2017-04-26
你得先说说你的预期效果是啥?问问题要问清楚啊
赞了回答2017-04-26
你的程序应该是想测试 volatile 关键字的功能。但是 “把 Thread.sleep(1) 换成 Thread.sleep(1000) 就能获得预期效果” 这样做理解上是不对的。首先,程序中总共有两个线程,主线程(暂称 线程M)和 new Thread(td) (暂称 线程T)。
赞了回答2017-04-26
这个期待是没有规范支撑的。代码中没有做任何能保证 "子线程写 happen-before 主线程读" 的事情。 sleep(1000)后看到修改只是巧合,一个JVM如果在更久后才让主线程看到,甚至永远不让主线程看到都不违反规范。
赞了回答2017-04-26
你的程序应该是想测试 volatile 关键字的功能。但是 “把 Thread.sleep(1) 换成 Thread.sleep(1000) 就能获得预期效果” 这样做理解上是不对的。首先,程序中总共有两个线程,主线程(暂称 线程M)和 new Thread(td) (暂称 线程T)。
提出了问题2017-04-26
提出了问题2016-12-25
关注了问题2016-10-17
回答了问题2016-10-08
把问题搞复杂了,图2选择lists就行了。
回答了问题2016-10-08
直接跳转到你想要的URL,把别人的网页拿过来有侵权的嫌疑。没搞清楚这个需求有什么用,想做个镜像网站?
关注了问题2016-10-08
关注了问题2016-10-08
提出了问题2016-10-07
提出了问题2016-09-27