有没有办法让线程以微秒的分辨率睡多天? usleep只能将线程置于1000000睡眠状态,并且睡眠工作在第二步。是否可以使用睡眠和睡眠来实现这一目标?
答案 0 :(得分:5)
虽然现在尚未醒来:
通过这种方式,您可以在到达想要唤醒的时间时,定期检查时间,越来越快,越来越详细。
答案 1 :(得分:5)
只需在几个小睡眠期间分开大睡眠。
int64_t time_to_sleep = ...;
int peroid_to_sleep = ...;
while( time_to_sleep > 0 )
{
usleep( period_slept );
time_to_sleep -= period_slept;
}