AtomicBoolean相对于volatile boolean的优点是什么?
AtomicBoolean相对于volatile boolean的优点是什么?
布尔原始类型对于写入和读取操作来说是原子的,volatile保证了先行发生原则。因此,如果您只需要一个简单的get()和set(),则不需要AtomicBoolean。
另一方面,如果您需要在设置变量值之前实现某些检查,例如“如果为true,则设置为false”,那么您也需要以原子方式执行此操作。在这种情况下,请使用AtomicBoolean提供的compareAndSet和其他方法,因为如果您尝试使用volatile boolean实现此逻辑,则需要一些同步操作以确保该值在get和set之间没有更改。
这两者概念相同,但在原子布尔中,如果在操作之间发生CPU切换,它将提供原子性。