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

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

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

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

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

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

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

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