C++ 是std::this_thread::sleep_,用于在C+中为信号中断(或信号处理程序)定义的行为+;11?
C++ 是std::this_thread::sleep_,用于在C+中为信号中断(或信号处理程序)定义的行为+;11?,c++,linux,C++,Linux,unistd.h中的sleep()行为在Linux中有很好的定义 问题: C++11标准是否为信号中断/信号处理程序定义了std::this_thread::sleep_的行为? 如果是,行为是否依赖于平台?(我希望不是) 在Linux中实现不可中断的sleep()的最佳方法是什么?据我所知,这可以通过在调用sleep()之前阻塞所有信号来实现 C++11标准是否为信号中断/信号处理程序定义了std::this_thread::sleep_的行为 没有 行为是否依赖于平台 因为它是未指定的,所以
unistd.h
中的sleep()
行为在Linux中有很好的定义
问题:
std::this_thread::sleep_的行为?
如果是,行为是否依赖于平台?(我希望不是)
sleep()
的最佳方法是什么?据我所知,这可以通过在调用sleep()
之前阻塞所有信号来实现睡眠
sleep
返回中断时的剩余睡眠时间,因此为了防止过早唤醒,您可以使用循环在中断后恢复睡眠:
int time = 10;
while(time = sleep(time));
不幸的是,这个线程::sleep\u for
的情况并非如此,它不会返回中断时剩余的时间