【发布时间】:2016-12-15 06:39:45
【问题描述】:
由于 Integer 类也是不可变类,我们知道不可变类是线程安全的,这就是 Atomic Integer 的需要。 我很迷惑 。 是不是不可变对象的读写不需要是原子的,而原子整数的读写是原子的。 这意味着原子类也是线程安全的。
【问题讨论】:
-
什么时候使用哪个类??
-
嗯,一个是可变的,另一个是不可变的。因此,当您需要可变值(存在其他选项)时,可以使用
AtomicInteger,而不能使用Integer。 -
当您需要一个线程安全可变值时,您可以使用
AtomicInteger,而不仅仅是一个可变值... -
+1 @EduGR 指定线程安全的可变值。 atomic 包中的类如 AtomicInteger 的工作原理是 volatile 变量在内存中读取/写入以保持多线程环境中的变化。
标签: java multithreading concurrency atomic compare-and-swap