This question already has answers here:
When is it preferable to use volatile boolean in Java rather than AtomicBoolean? [duplicate]
                                
                                    (5个答案)
                                
                        
                        
                            Volatile boolean vs AtomicBoolean
                                
                                    (11个答案)
                                
                        
                5年前关闭。
            
        

在关于编程的书中,我读到:


  对于“无限”循环,应该有某种方式告诉线程
  不再需要它,例如通过AtomicBoolean标志


如果不是AtomicBoolean而是volatile boolean怎么办?在上述情况下,使用AtomicBoolean而不是volatile boolean可以消除哪些负面影响?

如果我们仅将变量用作线程终止的标志,则AtomicBooleanvolatile boolean仍然存在区别吗?

最佳答案

使用AtomicBoolean,所有读取和写入操作都是原子操作(名称包括在内)。使用volatile boolean时,当两个线程同时访问该变量时,您仍然必须处理竞争条件。

09-04 08:31