1362

7 分钟

#C 语言标准库函数 thrd_yield

/********************************************* * @brief 让出当前线程 ********************************************/ void thrd_yield(void);

说明

让出当前线程,提示调度系统重新调度线程,以允许其它线程运行。

当前线程仍是可以运行的状态,重新调度时仍可能运行当前线程。

参数

返回值

#示例

#include <stdio.h> #include <threads.h> #include <time.h> // 通过让出实现睡眠 void yield_sleep(int seconds) { // 获取当前时间戳(秒) // 亚秒级时间被丢弃,因此休眠时间并不准确 time_t start = time(NULL); do { thrd_yield(); } while(time(NULL) - start < seconds); } int main(void) { printf("开始时间: %s", ctime(&(time_t){time(NULL)})); // 睡眠 yield_sleep(3); printf("结束时间: %s", ctime(&(time_t){time(NULL)})); return 0; }

运行结果:

开始时间: Fri Aug 22 14:51:18 2025 结束时间: Fri Aug 22 14:51:21 2025

#推荐阅读

#参考标准

  • C17 standard (ISO/IEC 9899:2018):
    • 7.26.5.8 The thrd_yield function (p: 281)
  • C11 standard (ISO/IEC 9899:2011):
    • 7.26.5.8 The thrd_yield function (p: 385)

创建于 2025/8/22

更新于 2025/8/22