pthread_join - Blockiert den auszuführenden Thread (caller) bis zur Terminierung eines anderen Threads

Beschreibung

int pthread_join(pthread_t thread, void **retval);
  • thread - Der Thread, auf den gewartet werden soll

Beispiel

int main(int argc, char** argv) {
	int n1 = 1, n2 = 2;
 
	// Thread-Handle
	pthread_t t1, t2;
 
	// Threads erstellen (t, attr, code, args)
	// args ist vom Typ void*, damit die Argumentübergabe möglichst
	// generell ist. Der Thread muss die Adresse selbst interpretieren.
	pthread_create(&t1, NULL, runner, &n1);
	pthread_create(&t2, NULL, runner, &n2);
 
	// Warten bis die Threads fertig sind (t, res)
	pthread_join(t1, NULL);
	pthread_join(t2, NULL);
 
	return 0u;
}
 
void *runner(void *args) {
	// Aufgelöstes Argument. Der Void-Pointer wurde zum int-pointer gecastet
	// und anschließend aufgelöst.
	int nr = *((int *)args);
	return args;
}
Link zum Original