AtomicBoolean将其值存储在:
private volatile int value;
然后,例如,提取它的值如下所示:
public final boolean get() {
return value != 0;
}
背后的原因是什么?为什么不使用boolean
?
发布于 2012-12-05 22:23:48
AFAIK,int
是可以跨不同机器类型实现的最小类型的CAS操作。
注意:由于对象分配是8字节对齐的,所以使用较小的类型不会节省任何内存。
发布于 2012-12-05 22:28:56
这可能能够使几个Atomic
类基于相同的基数(Unsafe
),它使用整数并提供比较和交换操作。
Concurrency in Practice很好地解释了内部工作原理。
https://stackoverflow.com/questions/13724858
复制相似问题