warten auf alle threads
-
gibt es in der pthread-bibliothek eine funktion mit der man auf alle existierenden threads eines prozesses warten kann, wie pthread_join() für einen einzigen thread?
oder muss ich mir selbst eine liste mit allen gestarteten threads erstellen und dann für jeden einzigen über eine schleife pthread_join() aufrufen, um auf alle zu warten?
-
Ich glaube, so etwas gibt es nicht. Da wirst du wohl auf alle einzeln warten müssen.
-
ja, dass hätte ich mir auch fast gedacht. ich konnte auch nirgendwo etwas dazu finden.
muss ich wohl wieder alles selber schreiben.aber dass ich die pthread_ts in einer liste speichere, dann mit einer schleife über die einzelnen listenelemente iteriere und bei jedem durchgang pthread_join() mit dem entsprechenden pthred_t aufrufe, müsste doch funktionieren, oder?
oder gibt es noch eine elegantere lösung?
-
Das sollte fuktionieren. Ich hatte dieses Problem auch neulich. Hab es halt so gemacht:
pthread_join(thread1, NULL); pthread_join(thread2, NULL); pthread_join(thread3, NULL); pthread_join(thread4, NULL);
Halt das Gleiche, nur ohne Schleife.
Was besseres fiel mir auch nicht ein.