gpt4 book ai didi

java - 迭代 ArrayList 时出现 ConcurrentModificationException

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:08 25 4
gpt4 key购买 nike

synchronized(queueClientList){
Iterator<Client> iterator = queueClientList.iterator();
while (iterator.hasNext()){
Client client = new Client();
client = iterator.next();
try {
Thread.sleep(client.serviceTime);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
System.out.println(client.ID+ " it`s out");
queueClientList.remove(client);
}
}

此代码应迭代 queueClientList并使线程 hibernate client.serviceTime毫秒。唤醒后,它应该从 queueClientList 中删除当前客户端。 。

它给了我ConcurrentModificationExceptionclient = iterator.next()线

queueClientList的声明是:

public List<Client> queueClientList = Collections.synchronizedList(new ArrayList<Client>());

如果整个方法是同步的,为什么它会抛出该错误?

最佳答案

问题已解决。问题是,我试图从列表中删除,同时迭代它,这是不可能的。

关于java - 迭代 ArrayList 时出现 ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43157501/

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