【问题标题】:How shuold use yield in pthread()?应该如何在 pthread() 中使用 yield?
【发布时间】:2015-08-17 17:18:18
【问题描述】:

例如,我在我的系统中执行主动超线程,每个内核中运行两个线程。

现在我的问题是:

当这些线程之一调用yield() 时会发生什么?

在这种情况下确实如此,请使用yield()

【问题讨论】:

  • 为什么不按照实际的文档,有什么特别不清楚的地方?
  • 我的问题是在这种情况下会发生什么?
  • 再说一次,你还有什么不清楚的地方:man7.org/linux/man-pages/man3/pthread_yield.3.html ??
  • this:pthread_yield() 导致调用线程放弃 CPU。
  • 当我将每个线程分配给每个核心时怎么可能?

标签: c++ multithreading ubuntu


【解决方案1】:

除非你有一些不寻常的特殊要求,当一个线程调用yield() 时,你应该切换到另一个准备运行的线程并让屈服线程准备运行。如果有多个线程,则切换到哪个准备运行的线程取决于您。您可以更喜欢分配给该核心的线程,但如果您愿意,也可以进行“线程窃取”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 2015-08-08
    • 2020-04-16
    • 1970-01-01
    • 2012-05-26
    • 2020-11-15
    • 1970-01-01
    • 2019-07-12
    相关资源
    最近更新 更多