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

时间:2010-07-02 09:07:14

标签: c++ sleep

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

2 个答案:

答案 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; 
}