[英]this_thread::sleep_for sleeps early
我正在尝试做一件非常简单的事情(但花了几个小时没有结果):打印一行,睡一会,打印第二行。 我希望下面的代码可以做到这一点,但是,它首先休眠然后同时打印两行? 谁能看到我在这里缺少的东西?
这是整个代码:
#include<thread>
#include<chrono>
int main() {
printf("%s","Wait.\n");
std::this_thread::sleep_for(std::chrono::seconds(3));
printf("%s","Thank you for waiting.");
}
电脑信息:Mac 10.14.16,编辑:CLion
printf 不一定会刷新缓冲区,这就是为什么在线程从睡眠中恢复之前看不到它的原因(它这样做是因为它注意到线程处于非活动状态)。 要强制刷新添加fflush(stdout);
在调用线程睡眠之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.