Java中的哪些操作被认为是primefaces操作?

Java中的哪些操作被认为是primefaces操作?

  • 除了long和double之外的所有原始types的赋值
  • 所有的参考作业
  • 所有挥发性variables的分配
  • java.concurrent.Atomic *类的所有操作

也许还有更多。 看看这个jls 。

正如评论中指出的那样,primefaces性并不意味着可见性。 所以,当另一个线程保证不会看到一个部分写入的int ,它可能永远不会看到新的值。

long和double的操作也是普通的64位CPU primefaces ,尽pipe没有保证。 另请参阅此function请求 。

在Java中,32位或更小数量的读写保证是primefaces的。
按照primefaces,我们的意思是每个动作都是一步完成的,不能被打断。 因此,当我们有multithreading的应用程序时,读写操作是线程安全的,不需要进行同步。

例如,下面的代码是线程安全的:

 public class ThreadSafe { private int x; public void setX(int x) { this.x = x; } } 

在AtomicLong.java中,基于这种方法看起来多头的分配是primefaces的:

 public final void set(long newValue) { value = newValue; } 

注意没有任何同步。