Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 当我输入一个字符时,主线程和子线程都返回?_Multithreading_Getchar - Fatal编程技术网

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

Multithreading 当我输入一个字符时,主线程和子线程都返回?,multithreading,getchar,Multithreading,Getchar,//请参阅thd代码。为什么子级将执行和处理,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_j

//请参阅thd代码。为什么子级将执行和处理,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没有值

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

我认为你错了,也许你可以运行我的代码,当我测试上面的演示时,我发现我认为我运行了你的代码是错的。我没有看到任何空值。在我的两个测试中,主线程获得第一个输入字符,线程读取第二个字符。不过,我想也可以再订一份。