是一个同步的volatile变量?(Java)的

yot*_*moo 8 java volatile synchronized

假设我有一个私有变量,我有一个setVariable()方法,它是否synchronized与使用volatile修饰符完全相同?

Ern*_*ill 7

否.易失性意味着变量不会缓存在任何每线程缓存中,并且在需要时始终从主内存中检索其值.同步意味着那些每线程缓存将在某些点保持同步.理论上,如果许多线程需要读取变量的值,那么使用volatile变量会带来很大的速度损失,但它很少被改变.