Dom*_*ndo 4 c++ sleep thread-sleep
我注意到有两种不同的方法可以在C++中"暂停".(虽然我认为它的正确名称是sleep.)
方法1,(可能是最熟悉的方法):
#include <iostream>
#include <unistd.h>
int main() {
std::cout<<"Hello, "<<std::endl;
sleep(1);
std::cout<<"world!\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我首先学到的方法:
#include <iostream>
#include <thread>
#include <chrono>
int main() {
std::cout<<"Hello, "<<std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
std::cout<<"world!\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不是问哪条路是对的,(它们都做同样的事情),而是我要问哪个更常用,或者"接受".另外,这两者在速度/性能等方面有区别吗?
小智 8
这两种方法的区别在于可移植性:
sleepfrom unistd.h是C POSIX库的一部分,因此仅适用于提供POSIX-API的系统(例如Linux,BSD,...),但不适用于Windows
std::this_thread::sleep_for 是C++标准库的一部分(自C++ 11以来),因此可在支持C++ 11及更高版本的所有平台上使用
如果您可以选择std::this_thread::sleep_for仅依赖于C++ 11实现而不依赖于System API.
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |