我们提出了一个奇怪的错误,在调查代码之后,似乎唯一可能发生的地方就是并发问题的静态方法。
由于在里面创建了List,这段代码会不会出现任何奇怪的问题?
如果是这种情况,我是否应该将列表作为参数传递给线程安全(或公开并直接使用其他静态方法)?
public static List<String> fooList(MyObject obj, List<String> listToCheck) {
List<String> checkedWords = new ArrayList<>();
for (String wordToCheck : listToCheck) {
if (wordChecker(obj, wordToCheck)) {
checkedWords.add(keyword);
}
}
return checkedWords;
}
private static boolean wordChecker(MyObject obj, String word) {
// doSomething
return result;
}
答案 0 :(得分:2)
发布后,此代码没有线程问题。
但是,如果您的doSomething
代码使用static
数据执行某些操作,那么线程问题很可能会出现错误。