Execução múltipla da mesma sub-rotina de thread ao comentar pthread_join para esse segmento [duplicado]
Esta questão já tem uma resposta aqui:
pthread: uma instrução printf é impressa duas vezes no encadeamento filho 3 respostasEu sou novo em segmentação. Aqui, se eu comentar pthread_join (thread1, NULL), em seguida, na saída, por vezes, recebo
Thread2
Thread1
Thread1
Não consigo entender por que o rastreamento do Thread1 está chegando duas vezes e qual é a funcionalidade exata do pthread_join.
Além disso, por favor, consulte algum tutorial sobre conceitos de threading para iniciantes.
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);
}