[問題] pthread問題
網路上看到一個範例,如下
void print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
char *message1 = "Hello";
char *message2 = "World";
pthread_create( &thread1, pthread_attr_default,
(void *) &print_message_function, (void *) message1);
sleep(10); //休息一下,等"Hello"印出來再產生下一個 thread
pthread_create(&thread2, pthread_attr_default,
(void *) &print_message_function, (void *) message2);
sleep(10); //休息一下,等"World"印出來再結束。
exit(0);
}
void print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s", message);
pthread_exit(0);
}
以上執行結果為HelloWorld
想請教,沒有使用pthread_join,main有可能會比其他thread先執行完
利用sleep(),應該是會造成process(包含thread)整個停下來
即使這樣mian還是有可能會比其他thread執行完
但執行結果卻是thread1->thread2->mian
請問是為什麼?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.168.49
推
08/07 23:48, , 1F
08/07 23:48, 1F
→
08/07 23:49, , 2F
08/07 23:49, 2F
推
08/07 23:54, , 3F
08/07 23:54, 3F
→
08/08 10:27, , 4F
08/08 10:27, 4F
→
08/08 10:27, , 5F
08/08 10:27, 5F
→
08/08 11:27, , 6F
08/08 11:27, 6F
→
08/08 11:28, , 7F
08/08 11:28, 7F
→
08/08 11:29, , 8F
08/08 11:29, 8F
推
08/08 16:33, , 9F
08/08 16:33, 9F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
問題
3
9