使用std::this_thread::sleep_for配合chrono库实现延时,如延时2秒:std::this_thread::sleep_for(std::chrono::seconds(2)),该方法跨平台、类型安全且可读性强,推荐用于现代C++。

在C++中实现程序延时执行,常用的方法是使用标准库提供的睡眠(sleep)函数。这些函数可以让程序暂停指定的时间,适用于控制循环间隔、模拟耗时操作等场景。
C++11标准:使用std::this_thread::sleep_for
现代C++推荐使用
- 包含头文件:
#include和#include - 使用
std::this_thread::sleep_for()指定等待时间 - 时间单位由
std::chrono提供,如 milliseconds、seconds、microseconds
示例代码:
#include#include #include int main() { std::cout << "程序开始..." << std::endl; // 延时2秒 std::this_thread::sleep_for(std::chrono::seconds(2)); // 或者延时500毫秒 // std::this_thread::sleep_for(std::chrono::milliseconds(500)); std::cout << "2秒后继续执行" << std::endl; return 0; }
跨平台兼容性说明
上述方法在Windows、Linux和macOS上均可使用,是C++11及以后版本的标准做法,无需依赖系统API。
立即学习“C++免费学习笔记(深入)”;
- 优点:类型安全、可读性强、支持多种时间单位
- 可组合使用:例如
sleep_for(2s + 500ms)(需 using namespace std::literals) - 适合多线程环境,不会影响其他线程运行
旧式方法(不推荐但可能遇到)
在一些老代码中可能会看到以下方式:
-
sleep(n):Linux/Unix下表示秒,需包含 -
Sleep(n):Windows API,单位是毫秒,需包含,注意大写S
这类方法不具备跨平台性,建议新项目统一使用 std::this_thread::sleep_for。
基本上就这些。用现代C++的chrono加thread组合,写延时既清晰又可靠。










