【问题标题】:How do I obtain Sleep(0) like behaviour in Linux如何在 Linux 中获得类似 Sleep(0) 的行为
【发布时间】:2011-09-24 04:01:13
【问题描述】:

在 Windows 上,Sleep(0) 在没有指定最短时间的情况下产生线程控制,(see here) 但是在 Linux 和 POSIX 上,来自 unistd.h 的 sleep(0) 只是被忽略了。

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

【问题讨论】:

    标签: c linux


    【解决方案1】:

    试试“sched.h”中的sched_yield,它是专为您想做的事情而创建的。

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

    【讨论】:

    • nanosleep 提供更高的分辨率,更不用说usleep 在 POSIX 中已被弃用并计划删除...
    猜你喜欢
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2016-12-11
    相关资源
    最近更新 更多