求解疑难杂症,java多线程只读访问静态List,n次后开始报错
应用中碰到的问题,某个类有static List<String> list = new ArrayList<String>(),list中仅添加了一个字符串,对外提供一个接口,接口for(String s: list){ exec(s); },其中,exec方法中将变量s分发给多个线程,线程中处理该字符串。
问题来了,接口被调用几十次后(每次调用间隔一分钟),开始报错java.util.ArrayList$Itr.checkForComodification。
写测试代码模拟上述场景,未复现此问题。
想请教大家,这个问题可能是哪里引起的?