我注意到在 C++ 中有两种不同的“暂停”方式。 (尽管我认为它的正确名称是 sleep
ing。)
方法一,(可能是大家最熟悉的方法):
#include <iostream>
#include <unistd.h>
int main() {
std::cout<<"Hello, "<<std::endl;
sleep(1);
std::cout<<"world!\n";
return 0;
}
还有我最先学到的方法:
#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;
}
我不是在问哪种方式对,(他们都做同样的事情),而是我在问哪个用得越多,或者“接受”。另外,在速度/性能等方面,这两者之间是否存在差异?
最佳答案
这两种方法的区别在于可移植性:
sleep
来自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 实现而不依赖系统 API。
关于c++ - 在 C++ 中暂停 - 哪种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53072750/