ayo*_*ntu 4 java atomic thread-safety
原子操作如何成为线程安全的?我在维基百科关于线程安全的文章中读过这个主题.但这篇文章并没有真正解释幕后的过程.换句话说,为什么线程A执行的"原子"操作不能被线程B中断?
原子操作将完成或根本不完成.其他线程将无法看到"正在进行"操作 - 它永远不会在部分完成状态下查看.这就是"原子"这个词在这个背景下的含义.
实现真实性的幕后魔术因实现而异.出于并发设计的目的,您可以依赖的是执行中的全有或全无保证.
但他们并没有真正解释幕后的过程,换句话说,为什么线程A执行的原子操作不能被线程B中断?
他们没有解释幕后发生的事情的原因是这是高度特定于实现的.例如,它取决于可用于在实现平台上执行此类操作的硬件指令.
但你不应该担心这一点.你不应该关心如何实现原子性(例如非可插入性).您应该简单地依赖AtomicXxx类API提供的保证,某些操作将以原子方式运行,并基于这些保证构建更高级别的线程安全性.
但请注意,AtomicXxx类的原子性属性仅适用于单个操作.一系列AtomicXxx操作不会以原子方式执行,因此不会自动进行线程安全.
简而言之,如果您使用AtomicXxx类来实现线程安全性,那么您需要了解自己在做什么.