繁体   English   中英

this_thread::sleep_for 早睡

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM