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