Hallo Leute,
ich habe ein Programm gebaut, das Daten parallel verarbeiten kann. Das ganze Programm macht folgendes.
Ich habe eine "Datenbank", die Objekte beinhaltet, es ist im Grunde nur eine Liste.
Start
64 Threads mit Berechnungen starten
Warten, bis alle 64 Threads die Berechnung abgeschlossen haben
Schleife, in der alle von den Threads erzeugten Objekte durchgegangen werden und die neu erstellten Objekte in die Hauptdatenbank eingetragen werden.
Gehe wieder zu Start.
So, nun habe ich folgendes Problem, es kann passieren, dass einige Threads für die Berechnung länger brauchen als andere. Jetzt können z.B. 63 Threads darauf warten, bis ein Thread noch rechnet. Deshalb würde ich gerne Read / Write Zyklen einführen in dennen auf diese Liste zugegriffen werden kann. Gibt es da irgendwelche "guten" Ansätze um so etwas zu realisieren?
ich habe ein Programm gebaut, das Daten parallel verarbeiten kann. Das ganze Programm macht folgendes.
Ich habe eine "Datenbank", die Objekte beinhaltet, es ist im Grunde nur eine Liste.
Start
64 Threads mit Berechnungen starten
Warten, bis alle 64 Threads die Berechnung abgeschlossen haben
Schleife, in der alle von den Threads erzeugten Objekte durchgegangen werden und die neu erstellten Objekte in die Hauptdatenbank eingetragen werden.
Gehe wieder zu Start.
So, nun habe ich folgendes Problem, es kann passieren, dass einige Threads für die Berechnung länger brauchen als andere. Jetzt können z.B. 63 Threads darauf warten, bis ein Thread noch rechnet. Deshalb würde ich gerne Read / Write Zyklen einführen in dennen auf diese Liste zugegriffen werden kann. Gibt es da irgendwelche "guten" Ansätze um so etwas zu realisieren?