做响应式网站好不好,宜宾公司做网站,重庆建工建筑工程信息网,哪些网站是做免费推广的Windows的API函数 Sleep(INFINITE); 休眠时间为永久 Linux的API函数sleep 没有直接表示无限时间的参数#xff0c;根据POSIX标准#xff0c;sleep() 函数的参数应该是 unsigned int 类型#xff0c;因此最大可以接受的参数值是 UINT_MAX#xff0c;即 4294967295 秒。sleep…Windows的API函数 Sleep(INFINITE); 休眠时间为永久 Linux的API函数sleep 没有直接表示无限时间的参数根据POSIX标准sleep() 函数的参数应该是 unsigned int 类型因此最大可以接受的参数值是 UINT_MAX即 4294967295 秒。sleep(UINT_MAX); 休眠42亿多秒换算后大约是 49710 天相当于大约 136 年。
#include iostream
#include limits.h
#include unistd.hint main() {std::cout UINT_MAX std::endl;sleep(UINT_MAX);return 0;
}
C可以用条件变量 std::condition_variable 实现类似的效果。
#include condition_variable
#include iostream
#include mutex
#include threadstd::mutex mtx;
std::condition_variable cv;int main() {std::cout Main thread starts... std::endl;std::mutex mtx;std::unique_lockstd::mutex lock(mtx);cv.wait(lock); // 主线程永久等待条件变量std::cout Main thread ends... std::endl;return 0;
}
在这个示例中主线程在调用 cv.wait(lock); 之后会永久等待直到其他线程通过 cv.notify_one() 或 cv.notify_all() 唤醒它。所以只要不唤醒它就等同于windows的Sleep(INFINITE)