私はこれらのpthreadsに不慣れです。数字をランダムに表示するのではなく、順番に表示するようにプログラムを書きました。そのためにpthrea_join()メソッドを使用しました。プログラムは次のとおりです。
int cnt=0,i=1;
pthread_t th[10];
int printmsg()
{
cnt++;
printf( "thread no. %d\n",cnt);
}
void tosync()
{
if(i>0)
pthread_join(th[i-1],NULL); // <---here i am blocking the previous thread..
printmsg();
}
void main(void)
{
pthread_create(&th[0], NULL,(void*)&tosync, NULL);
for( i=1;i<10; i++){
pthread_create(&th[i],NULL, (void*) &tosync, NULL);
}
int y;
for(int i=0; i<10; i++)
pthread_join(th[i],NULL);
return;
}
それでも私はランダムに数字を取得しています...plzz。ヘルプ