paraponera 2020-07-16 02:00 采纳率: 0%
浏览 3890

std::this_thread::sleep_for和直接使用sleep有什么区别?

问题如题
std::this_thread::sleep_for(std::chrono::seconds(1));和Sleep(1000)有区别吗?
请详细讲讲。为啥要用std::this_thread?

  • 写回答

2条回答 默认 最新

  • 芒种、 2020-07-16 02:32
    关注

    在C++ 11出现之前,C++没有提供睡眠函数,它提供了std::thread::sleep_for()。所以Boost提供了自己的代码,使你的代码独立于平台。

    C函数sleep(),usleep()和Sleep()是平台特定的而不是C++标准库的一部分。

    评论
  • tomwillow 2021-01-16 16:37
    关注

    this_thread::sleep_for是平台无关的,你在windows和linux上都可以这么写,具体链接的函数交给STL负责就是。

    确切地说,MSVC就是用Sleep实现的。具体你可以看我的博文:

    关于我是怎么找到MSVC的STL库的std::this_thread::sleep_for是怎么实现的这件事

    https://blog.csdn.net/tomwillow/article/details/112538203

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部