Java中是否存在最坏情况O(1)写入的并发数据结构?(固定16元素场景)
Java并发数据结构疑问:最坏情况O(1)写入的实现方案
场景与核心需求
- 存储元素数量不超过固定上限16个
- 每个元素会被多次写入,仅在所有写入操作完成后进行一次读取
- 硬性要求:写入操作在最坏情况下必须达到O(1)(此要求为硬性约束,不受程序整体性能影响)
ConcurrentHashMap的可行性探讨
我正在研究ConcurrentHashMap,想了解是否可以控制元素分配到的segment,让每个segment仅由单个线程写入?如果可行,是否能将写入操作优化至最坏情况O(1)?我清楚修改该类的难度较大,希望得到相关建议。
原生并发数组结构的疑问
我认为Java中不存在类似ConcurrentArray这类原生支持最坏情况O(1)写入的并发数据结构,但非常乐意被纠正。
备选方案咨询
如果上述ConcurrentHashMap的方案不可行,我的备选计划是创建16个容量固定的数组,通过CAS操作将每个线程分配至“未占用”的数组,但不确定该方案的效率表现,希望得到大家的建议。
内容的提问来源于stack exchange,提问作者WobbleMeister
相关产品推荐
相关产品推荐

