在 Linux 系统中,确实存在多种让线程主动放弃当前 CPU 时间片、将执行权让渡给其他线程的方法,以下是具体实现方式及原理总结:
一 c语言
#include <sched.h>
int sched_yield(void);
作用:当前线程主动放弃剩余时间片,进入就绪状态,等待调度器重新选择线程执行69。
特点:
不会阻塞线程,仅让出当前时间片。
适用于需要主动让出 CPU 的场景(如忙等待循环中)
间接操作:
sleep(0) 或 usleep(0)
二、使用 C++ 标准库
在 C++11 及以上版本中,可通过标准库调用:
std::this_thread::yield()