C++睡眠函数:Windows平台下的Sleep函数和Linux平台的usleep函数

52 篇文章 0 订阅
15 篇文章 0 订阅

C/C++睡眠函数:Windows平台下的Sleep函数和Linux平台的usleep函数

WinAPI Sleep

Sleep函数属于Windows API,使用它需要先包含synchapi.h

void Sleep(DWORD dwMilliseconds);

函数仅有一个参数(睡眠时长),单位是毫秒
参考Microsoft Docs

UNIX usleep

仅在Linux平台可用,使用它需要先包含unistd.h

int usleep(useconds_t usec);

函数仅有一个参数(睡眠时长),单位是微秒。该数值最大不超过1000000微秒(也就是1秒)。
参考Linux and UNIX Man Pages

C++11引入的跨平台通用睡眠函数sleep_for

template <class Rep, class Period>
void sleep_for02(const chrono::duration<Rep,Period>& rel_time);

函数sleep_for与前两个函数一样,都只有一个参数指明睡眠时长。稍显复杂的是,这个参数rel_time的单位取决于用户。
看官方例程:

// this_thread::sleep_for example
#include <iostream>       // std::cout, std::endl
#include <thread>         // std::this_thread::sleep_for
#include <chrono>         // std::chrono::seconds
 
int main() 
{
  std::cout << "countdown:\n";
  for (int i=10; i>0; --i) {
    std::cout << i << std::endl;
    std::this_thread::sleep_for(std::chrono::seconds(1));
  }
  std::cout << "Lift off!\n";

  return 0;
}

代码中使用std::chrono::seconds(1)表示1秒,同理可以用std::chrono::milliseconds(1000)来表示。

cplusplus Reference

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值