当前位置: 首页 > 知识库问答 >
问题:

更新数组元素而不阻塞整个数组

纪勇军
2023-03-14

哪个Java并发集合提供数组元素级锁定或数组元素的原子更新。我不想锁定整个数组。只有99%的读操作和1%的写操作。

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

共有1个答案

郑功
2023-03-14

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

    < li >原子集成阵列 < li >原子克隆阵列 < li>AtomicReferenceArray
 类似资料:
  • 问题内容: 我需要遍历一些大型数组,并将它们存储在API调用的主干集合中。在不导致循环导致接口无响应的情况下执行此操作的最佳方法是什么? 由于返回的数据太大,ajax请求的返回也将阻塞。我认为我可以将其拆分并使用setTimeout使其在较小的块中异步运行,但是有一种更简单的方法来执行此操作。 我认为网络工作者会很好,但需要更改一些保存在UI线程上的数据结构。我已经尝试过使用它来执行ajax调用,

  • 我有以下架构 我想为创建静态方法,以便根据给定的更新 我的情况与建议的复制相似,但不相同,因为那里的家伙知道所有的,而我不知道。

  • 我有一个以下格式的mongodb文档。如何基于父属性_id更新数组中第一个元素的rolename字段。

  • 问题是,在添加数组元素时不能逐个处理元素。相反,它将整个数组视为一个单独的元素。因此,在最后,我得到的是一个“数组数组”,而我希望得到的是如下所示: 为了得到这个结果,上述查询应该如何重新制定?

  • 问题内容: 我编写了以下代码段来计算每个元素的出现次数。有可能以更短的方式实现这一目标吗? 另外,我只想显示出现1次以上的元素。所以我尝试如下修改,这导致了错误。 正确的方法是什么? 问题答案: 对于后一个问题,您必须进行更改 至 对于第一部分,尚不清楚为什么需要第一条管道,然后需要第二条管道。如果目的是将转换为,请使用: 正如Dici所建议的,您还可以将Collectors链接起来,将每个数字与

  • 代码不止一次返回0和公共数字。我想让它返回一个数组与公共数字一次!那么,如何返回一个数组,数组中的数字对两个数组都是通用的。我想返回{2,7,4}-类似这样的东西。当我试图返回数组时,我总是出现越界异常。谢谢,巴里