Ich bin neu im Threading. Hier wenn ich einen Kommentar pthread_join (thread1, NULL) dann in der Ausgabe manchmal bekomme ichMehrfache Ausführung des gleichen Thread-Unterprogramms beim Kommentieren von pthread_join für diesen Thread
Thread2
Thread1
Thread1
Ich bin nicht in der Lage zu verstehen, warum Thread1 Spur kommt zweimal und was ist die genaue Funktionalität von pthread_join.
Bitte beachten Sie auch einige Tutorial über Threading-Konzepte für Anfänger.
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);
}
Nur um zu bestätigen, dass ich dies auf CentOS 6.2 mit gcc 4.4.6 reproduzieren kann. Schönes Puzzle! (+1) – NPE
Meine GCC-Version ist 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) Thread-Modell: Posix –
Kann nicht mit 'gcc Version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) Thread reproduzieren Modell: Posix'. –