Windows控制台函数:睡眠延迟函数Sleep()

目录

1. Sleep() 函数(Windows 环境)

2. Linux/Unix 下的类似函数:sleep() 和 usleep()

sleep()

usleep()

在 C++ 中,Sleep()(注意大小写敏感性)并不是标准库的一部分,而是特定于某些平台的函数,主要用于暂停程序执行一段时间。它的具体实现和用法会因操作系统不同而有所差异。以下我详细讲解一下 Sleep() 的功能、用法以及相关注意事项,并顺便介绍标准 C++ 中的替代方案。

1. Sleep() 函数(Windows 环境)

定义

  • 头文件:<windows.h>

  • 功能:暂停当前线程的执行,等待指定的时间(以毫秒为单位)。

  • 原型:

    void Sleep(DWORD dwMilliseconds);

参数 dwMilliseconds:暂停的时间,单位是毫秒(DWORD 是无符号 32 位整数)。

返回值:无返回值。 

特点

  • 阻塞式:调用 Sleep() 的线程会暂停执行,期间不会占用 CPU。

  • 平台依赖:仅适用于 Windows 系统,在 Linux 或 macOS 上不可用。

用法

常用于需要延迟执行的场景,比如模拟时间间隔、控制循环速度等。

示例

#include <iostream>
#include <windows.h> // 包含 Sleep()
int main() {
    std::cout << "开始\n";
    Sleep(2000); // 暂停 2000 毫秒(2 秒)
    std::cout << "2秒后\n";
    return 0;
}

注意事项

  • 精度:Windows 下 Sleep() 的精度受系统时钟分辨率影响,通常在 1-15 毫秒之间,不保证精确到毫秒。

  • 线程影响:只暂停调用它的线程,不影响其他线程。

2. Linux/Unix 下的类似函数:sleep() 和 usleep()

在 Linux 或 Unix 系统中,Sleep() 不存在,但有类似的函数:

sleep()

  • 头文件:<unistd.h>

  • 功能:暂停程序执行,时间以秒为单位。

  • 原型:

    unsigned int sleep(unsigned int seconds);

    返回值:如果被信号中断,返回剩余的秒数;否则返回 0。

#include <iostream>
#include <unistd.h>
int main() {
    std::cout << "开始\n";
    sleep(2); // 暂停 2 秒
    std::cout << "2秒后\n";
    return 0;
}

usleep()

  • 头文件:<unistd.h>

  • 功能:暂停执行,时间以微秒(μs)为单位。

  • 原型:

    int usleep(useconds_t usec);

  • 注意:在 POSIX.1-2001 中已废弃,推荐使用 nanosleep()。

  • #include <iostream>
    #include <unistd.h>
    int main() {
        std::cout << "开始\n";
        usleep(2000000); // 暂停 2000000 微秒(2 秒)
        std::cout << "2秒后\n";
        return 0;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值