065-cpp-sleep
C++ 休眠函数
让我用中文解释这两种休眠方式的区别:
std::this_thread::sleep_for
1 | std::this_thread::sleep_for(std::chrono::milliseconds(100)); // C++11 方式 |
- 这是 C++11 引入的现代休眠方法
- 跨平台兼容性好
- 可以使用不同的时间单位(毫秒、微秒、秒等)
- 提供类型安全
- 可以与其他 C++时间相关的功能无缝配合
- 精度依赖于操作系统实现
usleep
1 | usleep(100000); // 参数单位是微秒 |
- POSIX 系统的传统 C 函数
- 只在 UNIX/Linux 系统上可用
- 只接受微秒作为参数单位
- 参数类型是无符号整数
- 在某些系统上已经被废弃
- 可能会被信号中断
建议:
- 在现代 C++代码中,推荐使用
std::this_thread::sleep_for - 如果是只针对 UNIX/Linux 的老代码,
usleep也是可以接受的 - 如果需要高精度定时,两者都不够理想,应该考虑使用专门的实时编程方案
示例对比:
1 | // 现代C++方式,休眠100毫秒 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hymns!