使用 boost::this_thread::sleep_for() 和常规 sleep() 函数有啥区别?
Posted
技术标签:
【中文标题】使用 boost::this_thread::sleep_for() 和常规 sleep() 函数有啥区别?【英文标题】:Whats the difference between using boost::this_thread::sleep_for() and regular sleep() function?使用 boost::this_thread::sleep_for() 和常规 sleep() 函数有什么区别? 【发布时间】:2015-04-27 03:30:20 【问题描述】:我们知道boost::this_thread::sleep_for(...)
可用于使当前运行的线程进入睡眠状态。它与常规的sleep()
函数有多么不同。似乎我们使用boost::this_thread::sleep_for(...)
的每个地方都可以简单地替换为sleep()
方法而不影响结果。任何人都可以给它一些亮点。
【问题讨论】:
sleep()
不可移植。
【参考方案1】:
直到 C++11 出现,C++ 才提供睡眠功能,它提供了std::thread::sleep_for()。因此 Boost 提供了自己的功能,使您的代码与平台无关。
C 函数 sleep()、usleep() 和 Sleep() 是特定于平台的,而不是 C++ 标准库的一部分。
【讨论】:
【参考方案2】:sleep 仅以 1 秒的粒度运行,boost::this_thread::sleep_for 也允许低于 1 秒的睡眠粒度。
【讨论】:
以上是关于使用 boost::this_thread::sleep_for() 和常规 sleep() 函数有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)