我注意到在Java中没有类似于AtomicIntegerArray的AtomicBooleanArray数据类型。虽然我可以使用AtomicBoolean[]来满足当前的需求,但我很好奇为什么AtomicBooleanArray不是库的一部分。
如果您对此有任何想法,将不胜感激。
谢谢
我注意到在Java中没有类似于AtomicIntegerArray的AtomicBooleanArray数据类型。虽然我可以使用AtomicBoolean[]来满足当前的需求,但我很好奇为什么AtomicBooleanArray不是库的一部分。
如果您对此有任何想法,将不胜感激。
谢谢
AtomicBoolean实际上包装了一个int
,它的值为0或1表示false或true。这是因为它使用基于int
的compareAndSwap方法,而不是更小的方法。
你可以实现一个AtmoicBooleanArray,但不太干净,这也许就是为什么它不存在的原因。即JVM不支持原子布尔操作,因为像x64和ARM这样的CPU不支持它。
我认为如果你只将0(false)和1(true)值赋给AtomicIntegerArray,那么它可以被视为AtomicBooleanArray。所以为什么要写重复的代码呢?
boolean
可以比 int
小4倍,BitSet
可以比 int[]
小32倍。 - Peter Lawrey