gpt4 book ai didi

Java 列表同步

转载 作者:行者123 更新时间:2023-11-30 08:29:25 25 4
gpt4 key购买 nike

我有一个由多个线程访问的 ArrayList。主线程只清除列表,其他线程添加到列表中。我不希望在另一个线程向其中添加项目时清除列表。我希望在线程向列表中添加项目时锁定列表。

这是添加线程的代码:

synchronized (items)
{
int length = jsonArray.length();
if ((length > 0)) for (int i = 0; i < length; i++)
{
items.add(new Item(jsonArray.getJSONObject(i)));
}
}

但我不使用同步块(synchronized block)进行清除。清除也需要同步块(synchronized block)吗?

最佳答案

处理这个问题的一个快速方法是使用

List<Foo> items = Collections.synchronizedList(new ArrayList<Foo>());

所有的方法都会同步,你会很安全。

如果有人在这里对性能发表评论,请提供 OP 场景的实际数据来支持您的声明。

关于Java 列表同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com