如何在Linux中获得Sleep(0)行为

Chr*_*ver 16 c linux

在Windows上睡眠(0)产生线程控制而不指定最小时间,(参见此处)但是在unistd.h的Linux和POSIX sleep(0)上被忽略.

在Linux中获得Sleep(0)行为的最佳方法是什么?

lit*_*adv 18

从"sched.h"中尝试sched_yield,这是为了你想做的事情而创建的.

如果由于某种原因这不起作用 - 尝试usleep(1)- 这将产生至少1微秒的延迟(可能更多),这反过来触发上下文切换(如果有任何线程在等待).

  • `nanosleep`提供了更高的分辨率,更不用说`usleep`在POSIX中被弃用并计划删除...... (5认同)