-1

如标题:线程可见性问题:如果我只在一个 cpu 上运行多线程。如果 exieted 变量可见性问题?我认为线程将共享缓存并且没有任何可见性,还有其他意见吗?感谢先进。

4

1 回答 1

2

只需关注Java 内存模型- CPU 架构(缓存等)的详细信息已从您那里抽象出来,并由 JVM 透明地处理。

Java 内存模型 (JMM) 定义了多线程程序的允许行为 [...] 它对线程和主内存之间的关系设置了执行时间限制,以实现一致且可靠的 Java 应用程序。通过这样做,即使面对动态编译器、处理器和缓存执行的优化,也可以在多线程环境中推理代码执行。

Java 是跨平台的,因此您不能依赖于特定单核机器的特性。

另请参阅: Brian Goetz的修复 Java 内存模型,第 2 部分

于 2012-06-01T05:47:46.033 回答