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

标签 multithreading concurrency c++11

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

最佳答案

我在实现std::lock的过程中使用了yield,可以在这里找到:

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

事实证明,一次锁定多个锁/互斥锁时,如果一次失败,则可以通过使用yield来加快应用程序的运行速度,然后再尝试以其他顺序进行锁/互斥锁。

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

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

关于multithreading - std::this_thread::yield()用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5604059/

相关文章:

java - 我可以在 Java 中创建一个没有函数的线程吗?

multithreading - 中断并行流执行

c++ - 具有不同数量参数的函数的模板别名

c++ - 为什么这个函数不调用移动构造函数?

c++ - 无法将套接字对象移动到 std::vector

java - 将数据流从主 Activity 发送到不同类中的线程

C# async/await - 程序如何跟踪调用 "await"的位置?

c# - 标准对数据竞争有何保证?

python - 使用套接字TCP在python中下载文件

python - 跨多个进程和模块共享的全局可修改对象