为了账号安全,请及时绑定邮箱和手机立即绑定

多线程修改了ArrayList , 如何知道被谁修改的?

多线程修改了ArrayList , 如何知道被谁修改的?

神不在的星期二 2019-01-29 21:17:56
public void method(){     ...    for(Object obj: finalObjects){         ....         doSth(obj);         ....     } }我在主线程遍历 ArrayList 的时候,发生了 java.util.ConcurrentModificationException已检查 doSth 并没有修改 全局变量 finalObjects,所以我怀疑是某个异步方法在我遍历期间修改了这个变量,由于系统庞大,没法直接查找哪里修改了它,有没有办法在运行时获取,是哪个地方的异步,或者是哪个线程,修改了 finalObjects导致异常发生?请教各位大佬 ,谢谢 !!
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

很感谢各位的回答。只是解决这个问题,如@kevinz 那样,就可以了。
但是我的目的是想跟踪这个变量在这一段代码执行过程中,还有哪个线程修改了它。不过看来是很困难,我是一点头绪都没有。

查看完整回答
反对 回复 2019-01-29
  • 1 回答
  • 0 关注
  • 484 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信