maa*_*nus 95
也许还有更多.看看jls.
正如评论中所指出的,原子性并不意味着可见性.因此,虽然保证另一个线程不会看到部分写入int,但它可能永远不会看到新值.
long和double上的操作也是普通的64位CPU 原子,尽管不能保证.另请参阅此功能请求.
在 Java 中,32 位或更小的数量的读写保证是原子的。
原子,我们的意思是每个动作都发生在一个步骤中并且不能被中断。因此,当我们有多线程应用程序时,读写操作是线程安全的,不需要同步。
例如,以下代码是线程安全的:
public class ThreadSafe
{
private int x;
public void setX(int x)
{
this.x = x;
}
}
Run Code Online (Sandbox Code Playgroud)