私は今スレッドについて学んでいます。スレッドに変数を渡すことができるかどうか疑問に思っています。私の課題は、スレッドを作成し、各スレッドに番号 (必要に応じて名前) を割り当て、100 ミリ秒ごとに番号を出力することです。私の現在のプログラムは以下の通りです:
#define PCHECK(sts,msg) if((sts)!=0){printf("error : %s\n",msg); exit(EXIT_FAILURE)}
#define NB_THREAD 5
void* do_nothing(void* data)
{
int i;
//printf("creation thread %d",(int)data);
while(1)
{
usleep(100000);
printf("thread number : %d \n",data);
}
i = 0;
pthread_exit(NULL);
//exit(EXIT_SUCCESS);
}
int main(int argc, char *argv[])
{
int pid, j, status;
pthread_t thread;
int * res;
int stat;
for (j = 0; j < NB_THREAD; j++)
{
stat = pthread_create(&thread, NULL, do_nothing, (void *) j );
if (stat !=0)
{
perror ("pthread_create()");
}
}
for (j = 0; j < NB_THREAD; j++)
{
pthread_join(thread, (void **) &res );
}
return EXIT_SUCCESS;
}
今のところ、表示される数字は 0 (データの値) だけです。誰かが私がどこで間違っていたのか指摘できますか?ありがとう:)