Hallo,
bin schon seit einem ganzen Tag bei einem Race-Condition Problem mit ConcurrentHashMap und List.
Ich starte aus einem Java-Programm mehrere Threads. Alle Threads tragen gemeinsam in einer ConcurrentHashMap ein, hier ein Ausschnitt:
Die WordInfo-Klasse beinhaltet Informationen zum Suchergebnis jedes gefundenen Wortes. Ich habe die Methoden von Crawler alle als synchronized deklariert. Aber leider scheint es so, dass der Zugriff auf die List<WordInfo> leider nie synchron erfolgt. dh: Ich habe zwar alle Einträge in der Hash-Tabelle, aber die entsprechende WerteListe ist nach jedem Run verschieden. Vielleicht kann mir ja jemand sagen wie ich auch die Liste synchron halten kann. Ich habe es schon mit Collection.SynchronisedList (oder ähnlich) versucht.
vielen Dank, bin langsam beim Verzweifeln
arnold
bin schon seit einem ganzen Tag bei einem Race-Condition Problem mit ConcurrentHashMap und List.
Ich starte aus einem Java-Programm mehrere Threads. Alle Threads tragen gemeinsam in einer ConcurrentHashMap ein, hier ein Ausschnitt:
Java:
public class Crawler implements Runnable{
public static final ConcurrentHashMap<String, List<WordInfo>> indexMap = new ConcurrentHashMap<String, List<WordInfo>>( );
...
vielen Dank, bin langsam beim Verzweifeln
arnold