C++でマルチスレッドプログラミング
スレッド1とスレッド2を展開させてみてます。
タイミングはsleep()の中身でいじるものなんだろうか…?
#include <pthread.h> #include <stdio.h> void* thread1(void* pParam); //スレッド1 void* thread2(void* pParam); //スレッド2 int i=0; int main(int argc,char *argv[]){ pthread_t tid1,tid2; //スレッド識別関数 //スレッドの作成 pthread_create(&tid1,NULL,thread1,NULL); pthread_create(&tid2,NULL,thread2,NULL); //スレッド終了待ち pthread_join(tid1,NULL); pthread_join(tid2,NULL); return 0; } //スレッド1 void* thread1(void* pParam){ i=3;//スレッド1でi=3する while(1){ printf("hello\n"); sleep(1); } } //スレッド2 void* thread2(void* pParam){ while(1){ printf("world\n"); printf("%d",i);//スレッド1でi=3されたやつがスレッド2にちゃんと適用されてる。 sleep(3); } }