std :: this_thread :: yield()用法?

时间:2011-04-09 09:12:32

标签: multithreading concurrency c++11

有人可以提供c ++应用程序中std::this_thread::yield()用法的真实示例吗?

1 个答案:

答案 0 :(得分:7)

我在std :: lock的实现中使用yield,在这里找到:

http://llvm.org/svn/llvm-project/libcxx/trunk/include/mutex

事实证明,当一次锁定多个锁/互斥锁时,如果未能获得一个,则可以在尝试使用不同的锁/互斥锁之前使用yield来使应用程序更快顺序。

在这个源代码中,我实际上是在调用sched_yield()。但这只是为了以我想要的方式获取标头依赖性。在此平台std::this_thread::yield()只不过是对sched_yield()的调用:

http://llvm.org/svn/llvm-project/libcxx/trunk/include/thread