Tag: 易失性

Java中的易变Vs静态

是否正确地说, 静态意味着所有对象的值的一个副本, 易失性意味着所有线程的值的一个副本? 无论如何,一个静态variables值也将成为所有线程的一个值,那么为什么我们应该去挥发 ?

为什么volatile在multithreadingC或C ++编程中不被认为是有用的?

正如我最近发表的这个答案所展示的,我似乎对multithreading编程环境中volatile的效用(或缺乏)感到困惑。 我的理解是这样的:任何时候一个variables可能会被改变而不是访问它的一段代码的控制stream程,这个variables应该被声明为volatile 。 信号处理程序,I / O寄存器和由另一个线程修改的variables都是这种情况。 所以,如果你有一个全局的int foo ,并且foo被一个线程读取并且由另一个线程primefaces地设置(可能使用适当的机器指令),读线程就会看到这种情况,就像看到一个信号调整的variables一样处理程序或由外部硬件条件修改,因此foo应该被声明为volatile (或者,对于multithreading情况,使用内存隔离加载进行访问,这可能是更好的解决scheme)。 我的方法和错误在哪里?