Ich nehme mal stark an das Problem ist ein klassiker und ich bin nur zu dumm dazu die richtigen Worte für die Suchmaschine zu finden, also sorry gleich vorweg *g*
Folgendes Problem: Ich habe zwei oder mehrere Threads, die alle zuerst aus einer Quelle (wie auch immer) Punkte einlesen. Aus denen rechnet dann jeder Thread für sich einen neuen Datensatz aus und schreibt die neuen Punkte zurück. Soweit, so einfach. Aber jetzt muss gewartet werden bis alle Thread mit dieser berechnung fertig sind und die neuen Werte geschrieben haben damit beim neuen Abrufen der Werte alle am selben Stand sind..
Aus der Main-Methode wo ich die Threads anlege und starte kann man ja ganz einfach mit
warten bis Thread drei fertig ist. Allerdings kann man ja nicht einfach danach mit .start() den Thread neustarten, ist nicht erlaubt.. Die zweite Möglichkeit die mir einfällt wäre das in der run() Methode eine Endlosschleife drinsteht die immer dann wieder von vorne beginnt wenn alle am Ende sind. Nur wie frage ich das ab?
Folgendes Problem: Ich habe zwei oder mehrere Threads, die alle zuerst aus einer Quelle (wie auch immer) Punkte einlesen. Aus denen rechnet dann jeder Thread für sich einen neuen Datensatz aus und schreibt die neuen Punkte zurück. Soweit, so einfach. Aber jetzt muss gewartet werden bis alle Thread mit dieser berechnung fertig sind und die neuen Werte geschrieben haben damit beim neuen Abrufen der Werte alle am selben Stand sind..
Aus der Main-Methode wo ich die Threads anlege und starte kann man ja ganz einfach mit
Code:
try {
drei.join();
// Finished
} catch (InterruptedException e) {
// Thread was interrupted
}
warten bis Thread drei fertig ist. Allerdings kann man ja nicht einfach danach mit .start() den Thread neustarten, ist nicht erlaubt.. Die zweite Möglichkeit die mir einfällt wäre das in der run() Methode eine Endlosschleife drinsteht die immer dann wieder von vorne beginnt wenn alle am Ende sind. Nur wie frage ich das ab?