【C++】std::thread::yield()
1. 背景
C++ 标准库中
- 如果响应了这个请求,当前线程就会立即让出CPU,供调度给其他线程。
- std::this_thread::yield() 只是一个建议,线程调度器可以忽略这个建议。并不保证当前线程会立即让出 CPU。
因此使用时需注意,它可能不会让线程立即放弃时间片。
条件变量或sleep则可以精确的控制线程让出CPU。
2. 使用场景
std::this_thread::yield() 的主要作用是提示线程调度器,当前线程愿意让出 CPU,以便其他线程可以运行。
- 避免忙等(Busy-Waiting):当线程在等待某个条件时,调用 yield() 可以避免线程占用 CPU 时间,从而提高系统的整体效率。
- 优化线程调度:在某些情况下,线程可能需要主动让出 CPU,以便其他线程可以运行,从而提高程序的并发性能。

浙公网安备 33010602011771号