在Windows上睡眠(0)产生线程控制而不指定最小时间,(see here) 但是在unistd.h的Linux和POSIX sleep(0)上只是被忽略了。
在Linux中获得Sleep(0)行为的最佳方法是什么?
答案 0 :(得分:18)
从“sched.h”中尝试sched_yield,这是为了您想要做的事情而创建的。
如果由于某种原因不起作用 - 尝试usleep(1)
- 这将产生至少1微秒的延迟(可能更多),这反过来会触发上下文切换(如果有任何线程在等待)。 / p>