Wielokrotne wykonanie tego samego podprogramu wątku przy komentowaniu pthread_join dla tego wątku [duplikat]
To pytanie ma już tutaj odpowiedź:
pthread: jedna instrukcja printf jest drukowana dwukrotnie w wątku potomnym 3 odpowiedziJestem nowy w wątkowaniu. Tutaj, jeśli komentuję pthread_join (thread1, NULL), to czasami otrzymuję wynik
<code> Thread2 Thread1 Thread1 </code>
Nie jestem w stanie zrozumieć, dlaczego śledzenie Thread1 nadchodzi dwa razy i jaka jest dokładna funkcjonalność pthread_join.
Ponadto zapoznaj się z samouczkiem dotyczącym koncepcji wątków dla początkujących.
<code> 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); } </code>