pthread_create - Erzeugt einen neuen Thread und startet diesen

Beschreibung

int pthread_create(
	pthread_t *thread,
	const pthread_attr_t *attr,
    void *(*start_routine) (void *),
    void *arg
);

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