gpt4 book ai didi

java - Collections.synchronizedlist() 从末尾迭代时删除元素

转载 作者:搜寻专家 更新时间:2023-10-31 20:09:39 27 4
gpt4 key购买 nike

<分区>

我正在使用 Collections.Synchronizedlist() 使我的 arraylist 线程安全。我想问的是以下代码是线程安全的,即从末尾迭代列表时删除:-

pendingExecutionList = Collections.synchronizedList(new ArrayList<>(initialCapacity));

我正在主线程中创建列表。并从不同的线程添加到此列表。但是,迭代和删除仅从单个计划线程完成,如下所示:-

for (int i = pendingExecutionList.size() - 1; i >= 0; i--) 
{
if (someCondition(pendingExecutionList.get(i)))
{
process(pendingExecutionList.remove(i));
}
}

以上代码仅由单个线程执行,而多个线程正在添加到此列表。

我想避免在 synchronized(list) 上使用迭代器,因为那不是故障安全的。

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