【问题标题】:Updating Array elements with out blocking entire array在不阻塞整个数组的情况下更新数组元素
【发布时间】:2013-05-28 05:16:54
【问题描述】:

哪个 Java Concurrent 集合提供 Array 元素级别的锁定或 Array 元素的原子更新。我不想锁定整个阵列。有 99% 的读操作和只有 1% 的写操作。

在写入数组时锁定可能会阻塞其他线程,这些线程甚至可能不会查看被阻塞线程更新的同一元素。

【问题讨论】:

  • 您是否分析过您的代码并发现这是实践中的瓶颈?如果没有,这是过早的优化,可能比它的价值更麻烦。
  • 写操作有多复杂?什么是数组元素、整数或具有复杂、amybe 阻塞、写入方法的对象?

标签: java multithreading java.util.concurrent


【解决方案1】:

您可以使用AtomicXxxArray,其中每个元素都可以通过适当的可见性保证进行原子更新:

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2012-05-07
    • 2019-08-13
    • 2023-03-25
    • 2015-09-16
    相关资源
    最近更新 更多