睡眠很多天,分辨率为微秒

lie*_*ies 1 c++ sleep

有没有办法让线程以微秒的分辨率休眠很多天?usleep只能将线程置于1000000睡眠状态,并且睡眠工作在第二步.有没有办法,可能会同时使用睡眠和睡眠来实现这一目标?

Sjo*_*erd 5

虽然现在还不是醒来的时候:

  • 检查当前时间
  • 比你想要醒来时睡得有点短.

通过这种方式,您可以定期检查时间,当您达到想要唤醒的时间时,可以越来越快,越来越详细.


Chr*_*her 5

只需在几个小睡眠期间分开大睡眠.

int64_t time_to_sleep = ...;
int peroid_to_sleep = ...;
while( time_to_sleep > 0 )
{
     usleep( period_slept );
     time_to_sleep -= period_slept; 
}
Run Code Online (Sandbox Code Playgroud)

  • ...并为meassure添加更多漂移.如果你打算这样做,最好是"sleep()"表示整数秒的部分,而"usleep()"表示剩余时间. (4认同)