Cinematic
Lt. Commander
- Registriert
- Dez. 2010
- Beiträge
- 1.262
Zitat der Seite, von der ich das nachfolgende Codebeispiel habe:
thread1 und thread2 werden mit einem pointer auf die print_message_function erstellt. Diese Funktion hat aber weder return(), noch exit().
Was passiert also mit den threads nachdem sie die Funktion durchlaufen haben? Wie oder wo laufen die Threads danach weiter?
Threads terminate by explicitly calling pthread_exit, by letting the function return, or by a call to the function exit which will terminate the process including any threads.
thread1 und thread2 werden mit einem pointer auf die print_message_function erstellt. Diese Funktion hat aber weder return(), noch exit().
Was passiert also mit den threads nachdem sie die Funktion durchlaufen haben? Wie oder wo laufen die Threads danach weiter?
C:
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int iret1, iret2;
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}