我正在寻找一个关于内存障碍的良好在线介绍以及Java代码中常见的陷阱:
synchronized
或不经常使用volatile
和final
我特别感兴趣的是代码,它显示了行为和/或示例如何解决常见问题(比如创建一个多线程可以访问的地图以及懒惰地添加值的地方)。
答案 0 :(得分:5)
你可能会发现Martin Thomson的this article非常有帮助。
答案 1 :(得分:3)
我知道你在网上说过,但是Java Concurrency In Practice现在是 java并发指南。
答案 2 :(得分:1)
如果您想从CPU的角度了解更多信息(生成汇编代码以及JVM如何优化字节代码),本文可能很有趣:Memory Barriers and JVM Concurrency(InfoQ)