Ich habe eine ListeIst es sicher, dieselbe Liste gleichzeitig zu durchlaufen?
testList= new ArrayList<String>(); // gets initialized once at the very beginning init(). This list never changes. It's static and final.
ich eine statische Methode, die, wenn ein Eingabewert überprüft in dieser Liste ist:
public static boolean isInList (String var1)
throws InterruptedException {
boolean in = false;
for (String s : testList) {
if (s.equals(var1))
{
in = true;
break;
}
}
return in;
}
Ich habe eine Menge von Threads, die diese Methode gleichzeitig verwenden und überprüfen, ob Ein bestimmter Wert ist in dieser Liste. Es scheint gut zu funktionieren. Ich bin mir jedoch nicht sicher, ob das sicher ist. Mache ich das richtig? Ist es threadsicher?
Ja, es ist, es sei denn Sie hinzufügen/löschen/Elemente auf die Aktualisierung Liste. Verwenden Sie für solche Abfragen übrigens eine andere Datenstruktur. Zum Beispiel eine hashmap – raven
Warum benutzen Sie nicht 'testList.contains (var1)'? – RealSkeptic