C++中实现延时推荐使用std::this_thread::sleep_for,需包含<chrono>和<thread>头文件,支持纳秒到小时的多种时间单位;Windows平台可用Sleep()函数(毫秒为单位);Linux/Unix传统使用usleep()(微秒为单位,已过时);跨平台建议统一采用std::this_thread::sleep_for。

在C++中实现延时(即让程序暂停一段时间),可以使用不同平台和标准下的方法。最常用的是 std::this_thread::sleep_for,它是C++11引入的标准方式,跨平台且推荐使用。
1. 使用 std::this_thread::sleep_for(推荐)
这是现代C++中最标准的延时方法,需要包含头文件 chrono 和 thread。
- #include <chrono>
- #include <thread>
例如:让程序休眠2.5秒
std::this_thread::sleep_for(std::chrono::milliseconds(2500));// 或者更直观地写:
std::this_thread::sleep_for(std::chrono::seconds(2) + std::chrono::milliseconds(500));
支持的时间单位包括:
立即学习“C++免费学习笔记(深入)”;
- std::chrono::nanoseconds
- std::chrono::microseconds
- std::chrono::milliseconds
- std::chrono::seconds
- std::chrono::minutes
- std::chrono::hours
2. 使用 Sleep()(Windows平台)
如果你在Windows环境下开发,可以使用Win32 API中的 Sleep() 函数,单位是毫秒。
#include <windows.h>用法示例:
Sleep(1000); // 暂停1000毫秒(1秒)3. 使用 usleep()(Linux/Unix平台,已废弃)
在Linux系统中,传统上使用 usleep(),参数单位是微秒(注意不是毫秒)。
#include <unistd.h>示例:
usleep(500000); // 暂停500000微秒 = 0.5秒注意:usleep 是 POSIX 标准函数,在Windows不可用,且在新标准中已被标记为过时,建议改用 std::this_thread::sleep_for。
4. 简单延时程序示例
下面是一个跨平台、使用标准C++的延时程序:
#include <iostream>#include <chrono>
#include <thread> int main() {
std::cout << "程序开始..." << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(2));
std::cout << "2秒后继续执行" << std::endl;
return 0;
}
基本上就这些。优先使用 std::this_thread::sleep_for,它兼容性好、语法清晰,是现代C++延时的最佳选择。











