并发访问内部创建List的静态方法

时间:2015-11-18 14:13:05

标签: java multithreading concurrency thread-safety

我们提出了一个奇怪的错误,在调查代码之后,似乎唯一可能发生的地方就是并发问题的静态方法。

由于在里面创建了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;
}

1 个答案:

答案 0 :(得分:2)

发布后,此代码没有线程问题。

但是,如果您的doSomething代码使用static数据执行某些操作,那么线程问题很可能会出现错误。