java - 如何在多线程环境中修复 ConcurrentModificationExceptions?

标签 java exception

这是我不断收到的错误。

"Exception in thread "Thread-3" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:782)
at java.util.ArrayList$Itr.next(ArrayList.java:754)
at group1.bt.Announce.run(Announce.java:22)
at java.lang.Thread.run(Thread.java:679)"

最佳答案

您的问题是您正在从迭代器循环内部更改基础列表。你应该在 Announce.java 的第 22 行显示代码,这样我们就可以看到你具体做错了什么,但是要么在开始循环之前复制你的列表,使用 for 循环而不是迭代器,要么保存你想要删除的项目从列表到新列表,然后在完成迭代器循环后将它们全部删除。

关于java - 如何在多线程环境中修复 ConcurrentModificationExceptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10378436/

相关文章:

java - 如何将属性注入(inject)到 WebSocketHandler 中?

java - 在不使用 Callable 的情况下从线程引发异常?

android - 使用异步任务

java - 如何在 HTML 中创建数据库时间戳输入

java - Jsoup选择并迭代所有元素

java - java.util.Iterator.remove() 方法是 'optional operation' 是什么意思?

java - 防止 JAXB XML 解析上的循环引用

java - 在Java中,为什么要在catch block 中指定异常类型?

c++ - 有没有办法_get_UnhandledExceptionFilter?

c++ - clang 因 std::async 中的 char * 异常而崩溃