【C++】std::thread::yield()

1. 背景

C++ 标准库中 头文件提供的一个函数,用于建议当前线程让出 CPU 执行权,以便其他线程可以运行。它是一个线程调度相关的操作,主要用于优化线程的执行顺序,但它的行为并不是强制性的,而是依赖于底层线程调度器的实现。

  • 如果响应了这个请求,当前线程就会立即让出CPU,供调度给其他线程。
  • std::this_thread::yield() 只是一个建议,线程调度器可以忽略这个建议。并不保证当前线程会立即让出 CPU
    因此使用时需注意,它可能不会让线程立即放弃时间片。
    条件变量或sleep则可以精确的控制线程让出CPU。

2. 使用场景

std::this_thread::yield() 的主要作用是提示线程调度器,当前线程愿意让出 CPU,以便其他线程可以运行。

  • 避免忙等(Busy-Waiting):当线程在等待某个条件时,调用 yield() 可以避免线程占用 CPU 时间,从而提高系统的整体效率。
  • 优化线程调度:在某些情况下,线程可能需要主动让出 CPU,以便其他线程可以运行,从而提高程序的并发性能。
posted @ 2025-07-24 11:04  仰望星河Leon  阅读(54)  评论(0)    收藏  举报