我正在寻找关于内存障碍和 Java 代码中常见陷阱的良好在线介绍:
- 使用
synchronized
太频繁或不够频繁 - 何时使用
volatile
和final
- 双重检查锁定
- 等等
我对显示行为和/或示例如何解决常见问题的代码特别感兴趣(例如创建多个线程可以访问的映射以及延迟添加值的位置)。
我正在寻找关于内存障碍和 Java 代码中常见陷阱的良好在线介绍:
synchronized
太频繁或不够频繁volatile
和final
我对显示行为和/或示例如何解决常见问题的代码特别感兴趣(例如创建多个线程可以访问的映射以及延迟添加值的位置)。
您可能会发现Martin Thomson 的这篇文章很有帮助。
我知道你在网上说,但是Java Concurrency In Practice是这些天的Java 并发指南。
如果您想从 CPU 的角度了解更多相关信息(生成哪些汇编代码以及 JVM 如何优化字节码),这篇文章可能会很有趣:内存屏障和 JVM 并发(InfoQ)