Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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
C++ 如何在pthread()中使用yield?_C++_Multithreading_Ubuntu - Fatal编程技术网

C++ 如何在pthread()中使用yield?

C++ 如何在pthread()中使用yield?,c++,multithreading,ubuntu,C++,Multithreading,Ubuntu,例如,我在系统中执行活动超线程,每个核心中运行两个线程 现在我的问题是: 当其中一个线程调用产生时会发生什么 在这种情况下,使用yield是正确的。除非您有一些不寻常的特殊要求,否则当一个线程调用yield时,您应该切换到另一个准备运行的线程,并让准备运行的线程保持就绪。若有多个线程,那个么切换到哪个准备运行的线程取决于您。您可以选择分配给该核心的线程,但如果您愿意,也可以执行线程窃取操作。为什么不按照实际文档进行操作,特别是什么不清楚?我的问题是,在这种情况下会发生什么?再次,从这里您实际上不

例如,我在系统中执行活动超线程,每个核心中运行两个线程

现在我的问题是:

当其中一个线程调用产生时会发生什么


在这种情况下,使用yield是正确的。

除非您有一些不寻常的特殊要求,否则当一个线程调用yield时,您应该切换到另一个准备运行的线程,并让准备运行的线程保持就绪。若有多个线程,那个么切换到哪个准备运行的线程取决于您。您可以选择分配给该核心的线程,但如果您愿意,也可以执行线程窃取操作。

为什么不按照实际文档进行操作,特别是什么不清楚?我的问题是,在这种情况下会发生什么?再次,从这里您实际上不清楚的是:??这个:pthread_yield导致调用线程放弃CPU。当我将每个线程分配给每个核心时,如何可能?