我想确保我正确理解了这些概念。解释/确认将对我有很大帮助,我相信许多其他程序员。以下是我对这些概念的理解,来自我的调查:
当你想在多个线程之间共享一个变量时使用易失性。a) 声明一个(线程间共享的)变量 volatile 和 not 有什么区别?b) 我们是否应该总是在从不同线程访问它时声明它是 volatile 的?c) 同步 volatile 变量是否有意义?
AtomicReference 是一个包装我们的对象并提供一些原子操作的类(compareAndSet、lazySet 和weakCompareAndSet)。这就是全部,没有同步,什么都没有。a) 声明一个 AtomicReference volatile 有意义吗?b)但是同步呢?,因为 AtomicReference.get 既不同步也不同步?
同步是一个概念,它意味着对多个线程之间共享的变量的顺序访问。它可以通过实例和类来完成。同步可以添加到方法头或代码块中。我希望这里没有谜团:)
问候, 奥勒良