public void method(){
...
for(Object obj: finalObjects){
....
doSth(obj);
....
}
}
我在主线程遍历 ArrayList 的时候,发生了 java.util.ConcurrentModificationException
已检查 doSth
并没有修改 全局变量 finalObjects
,所以我怀疑是某个异步方法在我遍历期间修改了这个变量,由于系统庞大,没法直接查找哪里修改了它,有没有办法在运行时获取,是哪个地方的异步,或者是哪个线程,修改了 finalObjects
导致异常发生?
请教各位大佬 ,谢谢 !!
很感谢各位的回答。只是解决这个问题,如@kevinz 那样,就可以了。
但是我的目的是想跟踪这个变量在这一段代码执行过程中,还有哪个线程修改了它。不过看来是很困难,我是一点头绪都没有。