首页  >  文章  >  后端开发  >  如何在 C 中挂起执行:睡眠函数和替代方法指南

如何在 C 中挂起执行:睡眠函数和替代方法指南

DDD
DDD原创
2024-10-23 19:50:02458浏览

How to Suspend Execution in C  : A Guide to the Sleep Function and Alternatives

C 中的睡眠函数:综合指南

与 C 中的对应函数不同,C 缺乏显式的 Sleep() 函数来暂停程序执行在指定的时间内。然而,现代 C 标准引入了一种通用的解决方案,由 提供。和

使用 std::this_thread::sleep_for:

这是 C 11 及更高版本的推荐方法。它需要一个 std::chrono::milliseconds 类型的参数来指定睡眠持续时间。

<code class="cpp">#include <chrono>
#include <thread>

std::chrono::milliseconds timespan(111605); // or whatever

std::this_thread::sleep_for(timespan);</code>

Pre-C 11 替代方案:

之前在 C 11 中引入线程,需要特定于平台的解决方案。一种选择是使用条件编译定义睡眠函数:

<code class="cpp">#ifdef _WIN32
    #include <windows.h>

    void sleep(unsigned milliseconds)
    {
        Sleep(milliseconds);
    }
#else
    #include <unistd.h>
    
    void sleep(unsigned milliseconds)
    {
        usleep(milliseconds * 1000); // takes microseconds
    }
#endif</code>

或者,您可以利用 Boost 库:

<code class="cpp">#include <boost/thread/thread_only.hpp>

void sleep(unsigned milliseconds)
{
    boost::this_thread::sleep(boost::posix_time::milliseconds(milliseconds));
}</code>

其他功能:

除了 sleep_for 之外,标头提供 sleep_until 来暂停执行直到特定时间点。这提供了更大的灵活性,并可以更精确地控制睡眠持续时间。

以上是如何在 C 中挂起执行:睡眠函数和替代方法指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn