Java 中的并发数组

2022-09-02 20:14:05

因此,Java中有一个并发哈希映射,其优点不是锁定整个哈希表,而只是锁定其中的一部分。我想知道是否有这样的数组结构。特别是当调整数组大小时,锁定整个数组是不可取的,尤其是在实时应用程序中。有什么东西吗?


答案 1

一个AtomicIntegerArray(以及类似的AtomicReferenceArray)可能符合你的描述。但正如 Marcelo 所指出的 - 您无法调整数组大小。因此,您只能获得并发安全性,而无需显式锁定(打开)整个阵列。

数组 ...哪些元素可以原子更新


答案 2

Java 6还添加了一个有趣的集合,名为ConcurerSkipListSet。

...和 操作及其变体的平均 log(n) 时间成本。插入、删除和访问操作由多个线程安全地并发执行。迭代器是弱一致的,返回的元素反映了在迭代器创建时或自创建以来的集合状态。它们不会抛出 ConcurrentModificationException,并且可以与其他操作同时进行...contains, addremove