Non capisco del tutto il controllo e impostazione del comportamento .. ecco un esempio:
public static void main(String[] args) {
List<String> list = Collections.synchronizedList(new ArrayList<>());
String abc = "123";
if (!list.contains(abc)) {
list.add(abc);
// ... some several lines of code
list.remove(abc);
}
}
Ciò che non capisco ...
Quindi capisco che contains
e add
dovrebbero essere in un blocco synchronized(list)
...
ma per quanto riguarda remove
?
in caso contrario, quindi se fosse:
if (list.contains(abc)) {
list.add(abc);
list.remove(abc);
}
?
Comprendo che il codice non ha molto senso ma lo sto solo usando come esempio ... remove
deve essere nel blocco synchronized
qui?