У меня есть списокБезопасно ли перебирать один и тот же список одновременно?
testList= new ArrayList<String>(); // gets initialized once at the very beginning init(). This list never changes. It's static and final.
У меня есть статический метод, который проверяет, если входное значение в этом списке:
public static boolean isInList (String var1)
throws InterruptedException {
boolean in = false;
for (String s : testList) {
if (s.equals(var1))
{
in = true;
break;
}
}
return in;
}
У меня есть много потоков, которые используют этот метод одновременно и проверить, если в этом списке есть определенное значение. Кажется, он работает нормально. Однако я не уверен, что это безопасно. Правильно ли я делаю это? Это потокобезопасность?
Да, если вы не добавление/удаление/обновление элементов на список. Кстати, используйте другую структуру данных для таких запросов. Например, hashmap – raven
Почему вы не используете 'testList.contains (var1)'? – RealSkeptic