Hallo,
ich habe eine große Liste mit Objekten, die Schritt für Schritt in einer Schleife aus der Liste gelesen werden und mit deren Hilfe weitere rechenintensive Operationen durchgeführt werden.
Die Objekte aus der Liste werde je nach Ergebnis wiederum in andere Objekt-Listen einsortiert.
Nun hatte ich die Idee, diese große Liste einfach in 10? Teil-Listen aufzuspalten und jede Teil-Liste in einen eigenem Thread abarbeiten zu lassen. Die Teil-Threads müssten eigentlich nur auf die "gemeinsamen" Ergebnis-Objekt-Listen zugreifen können, um die Objekte einzusortieren. Der die "Einsortier"-Methode(n) müsste(n) dann wohl synchronisiert werden.
Die "Sortier"-Objekt-Listen sollen dann weiter verarbeitet werden. Das kann ich logischerweise erst dann machen, wenn alle Threads mit dem einsortieren fertig sind. Ich müsste also wissen, wann alle Threads fertig sind. Wie mache ich das am Besten? Empfiehlt sich sowas wie eine eigene ThreadQueue?
Bevor ich das Ganze umsetze, wollte ich gern wissen, ob ich hier grundlegend was falsch verstanden habe und sich Threads beispielsweise dafür nicht eignen usw.
Grüße
ich habe eine große Liste mit Objekten, die Schritt für Schritt in einer Schleife aus der Liste gelesen werden und mit deren Hilfe weitere rechenintensive Operationen durchgeführt werden.
Die Objekte aus der Liste werde je nach Ergebnis wiederum in andere Objekt-Listen einsortiert.
Nun hatte ich die Idee, diese große Liste einfach in 10? Teil-Listen aufzuspalten und jede Teil-Liste in einen eigenem Thread abarbeiten zu lassen. Die Teil-Threads müssten eigentlich nur auf die "gemeinsamen" Ergebnis-Objekt-Listen zugreifen können, um die Objekte einzusortieren. Der die "Einsortier"-Methode(n) müsste(n) dann wohl synchronisiert werden.
Die "Sortier"-Objekt-Listen sollen dann weiter verarbeitet werden. Das kann ich logischerweise erst dann machen, wenn alle Threads mit dem einsortieren fertig sind. Ich müsste also wissen, wann alle Threads fertig sind. Wie mache ich das am Besten? Empfiehlt sich sowas wie eine eigene ThreadQueue?
Bevor ich das Ganze umsetze, wollte ich gern wissen, ob ich hier grundlegend was falsch verstanden habe und sich Threads beispielsweise dafür nicht eignen usw.
Grüße