Hallo Leute,
ich versuche mit ExecuterService (n) Threads [Gruppe-A] zu starten 5-10 (auf dem Server können mehr als 10 sein). Ein Thread der [Gruppe-A] bekommt einen Job zu erledigen, ein Thread startet noch 4 Threads [Gruppe-B] auch von einem anderen ExecuterServic, pro Thread der [Gruppe-B] liest Daten und vergleicht sie ob sie in Daten-Tabelle existiert, wenn ja wird die ID zurückgeliefert (FK) sonst wird der Eintrag geschrieben und sein ID zurückgeliefert (also Entfernung von Duplikaten) Hier brauche ich synchronization besonders wenn Daten geschrieben werden gibt es eine Möglichkeit um das Ziel zu erreichen, dass die Daten korrekt geschrieben werden, hier möchte ich Phantom-Read vermeiden.
Phantom-Read bedeuted, daß keine 2 Threads versuchen eine bestimmte ID zu lesen, stellen sie beide fest sie existiret nicht und versuchen jetzt beide diese ID zu schreiben, weil sie UNIQUE sein soll.
habe mit synchronized, Monitor und Lock versucht hilft aber nicht, glaube weil mehrere Threads im Spiel sind.
für eine Idee, Antwort, Vorschlag oder Lösung wie die Implementierung realisiret wird, bedanke ich mich.
Grüße Ottens
ich versuche mit ExecuterService (n) Threads [Gruppe-A] zu starten 5-10 (auf dem Server können mehr als 10 sein). Ein Thread der [Gruppe-A] bekommt einen Job zu erledigen, ein Thread startet noch 4 Threads [Gruppe-B] auch von einem anderen ExecuterServic, pro Thread der [Gruppe-B] liest Daten und vergleicht sie ob sie in Daten-Tabelle existiert, wenn ja wird die ID zurückgeliefert (FK) sonst wird der Eintrag geschrieben und sein ID zurückgeliefert (also Entfernung von Duplikaten) Hier brauche ich synchronization besonders wenn Daten geschrieben werden gibt es eine Möglichkeit um das Ziel zu erreichen, dass die Daten korrekt geschrieben werden, hier möchte ich Phantom-Read vermeiden.
Phantom-Read bedeuted, daß keine 2 Threads versuchen eine bestimmte ID zu lesen, stellen sie beide fest sie existiret nicht und versuchen jetzt beide diese ID zu schreiben, weil sie UNIQUE sein soll.
habe mit synchronized, Monitor und Lock versucht hilft aber nicht, glaube weil mehrere Threads im Spiel sind.
für eine Idee, Antwort, Vorschlag oder Lösung wie die Implementierung realisiret wird, bedanke ich mich.
Grüße Ottens
Zuletzt bearbeitet: