应该如何在 pthread() 中使用 yield?
Posted
技术标签:
【中文标题】应该如何在 pthread() 中使用 yield?【英文标题】:How shuold use yield in pthread()? 【发布时间】:2015-08-17 17:18:18 【问题描述】:例如,我在我的系统中执行主动超线程,每个内核中运行两个线程。
现在我的问题是:
当这些线程之一调用yield()
时会发生什么?
在这种情况下确实如此,请使用yield()
。
【问题讨论】:
为什么不按照实际的文档,有什么特别不清楚的地方? 我的问题是在这种情况下会发生什么? 再说一次,你还有什么不清楚的地方:man7.org/linux/man-pages/man3/pthread_yield.3.html ?? this:pthread_yield() 导致调用线程放弃 CPU。 当我将每个线程分配给每个核心时怎么可能? 【参考方案1】:除非你有一些不寻常的特殊要求,当一个线程调用yield()
时,你应该切换到另一个准备运行的线程并让屈服线程准备运行。如果有多个线程,则切换到哪个准备运行的线程取决于您。您可以更喜欢分配给该核心的线程,但如果您愿意,也可以进行“线程窃取”。
【讨论】:
以上是关于应该如何在 pthread() 中使用 yield?的主要内容,如果未能解决你的问题,请参考以下文章