Ich habe diesen Code:Hinzufügen und Werte von ConcurrentHashMap entfernen, während über sie iterieren
private ConcurrentMap<String, Integer> myMap = new ConcurrentHashMap<>();
@Scheduled(fixedDelay = 600_000)
public void foo(){
myMap.values().stream().
filter(predicate()).
forEach(this::remove);
}
public void insert(String str, Integer value){
myMap.put(str, value);
}
Was würde passieren, wenn während über diese Karte Iterieren - jemand einen neuen Wert in ihm oder entfernt einen vorhandenen Wert daraus stellen wird ?
Haben Sie etwas versucht? –
@BuhakeSindi - nicht sicher, ich verstehe, was Sie fragen – Noam
Was ich sage ist, haben Sie einen Testfall erstellt, der Ihrem Szenario entspricht. –