Java - 使用volatile只在多处理器系统中有意义吗?

fab*_*bio 4 java multithreading operating-system volatile multiprocessing

使用volatile只在多处理器系统中有意义.这是错的吗?

我正在努力学习线程编程,所以如果你知道任何好的文章/ pdf ...我喜欢那些提到操作系统如何工作的东西,而不仅仅是语言的语法.

Jim*_*Jim 10

不可以.易失性可用于多线程应用程序.这些可能会或可能不会在多个处理器上运行.


Pet*_*rey 9

volatile用于确保所有线程都看到相同的数据副本.如果只有一个线程读/写字段,则不需要是volatile.它会工作得很好,只是有点慢.

在Java中,您对处理器体系结构没有太多的可见性,通常您会谈论线程和多线程.

我建议Java Concurrency in Practice,无论你的知识水平如何,它都很好,http://www.javaconcurrencyinpractice.com/

使用Java的全部意义在于,您不需要了解线程如何工作的大部分细节等.如果您学到很多不使用的东西,您可能会忘记它.;)