2011-12-05 28 views
1

私はマルチスレッドのプログラムを持っており、printfが期待どおりに動作しない理由を理解できません。マルチスレッドプログラムでprintfが動作しないのはなぜですか?

これは私のコードです:それは文 "このMSGを..." printfのない理由

#include <pthread.h> 
#include <stdio.h> 

void *Msg(void *arg) 
{ 
     pthread_t x; 
     x= pthread_self(); 
     printf("x=%ld\n", x); 
     printf("This MSG from a thread \n"); 
     pthread_exit((void*)0); 
} 



int main() 
{ 
    pthread_t n; 
    pthread_create(&n, NULL, Msg, NULL); 
    pthread_create(&n, NULL, Msg, NULL); 
    printf("Mother thread\n"); 
     return 0; 
} 

私の質問です。

答えて

4

スレッドに参加して、メインスレッドが終了する前にを実行する機会を与えてください。あるスレッドがプロセスを終了すると、他のすべてのスレッドが強制終了されます。

試してくださいにStackOverflowへようこそ:

pthread_join(n, NULL); 
return 0; 
+0

はい、それはたくさん – Yucoat

+0

@Yucoatをworks.thanks!この投稿があなたの質問に答える場合は、チェックマークアイコンをクリックして「Accepted」と記入してください。 –

+0

申し訳ありませんが、このアイコンが見つかりません。 – Yucoat

関連する問題