当我输入一个字符,主线程和子线程都返回?

时间:2018-08-31 04:01:37

标签: multithreading getchar

//请参阅代码。为什么孩子会和进程,c = NULL?

void* process(void* arg){
  char c = getchar();
  printf("process,c = %c\n",c);
}
int main()
{
  pthread_t tid;
  pthread_create(&tid,NULL,process,NULL);
  char c = getchar();
  printf("main,c = %c\n",c);
  pthread_join(tid,NULL);
  printf("over\n");
  return 0;
}

//和main,c有价值,而process,c没有价值

1 个答案:

答案 0 :(得分:0)

getchar()仅返回输入的每个字符一次。您有两个线程都调用getchar()。当一个字符到达时,其中一个返回该字符,而另一个线程等待下一个字符。