1.3. 我怎样睡眠小于一秒?

在所有Unix中都有的‘sleep()’函数只允许以秒计算的时间间隔。如果你想要更 细化,那么你需要寻找替换方法:

众观以上方法,‘select()’可能是移植性最好的(直截了当说,它经常比 ‘usleep()’或基于itimer的方法更有效)。但是,在睡眠中捕获信号的做法会有 所不同;基于不同应用,这可以成为或不成为一个问题。

无论你选择哪条路,意识到你将受到系统计时器分辨率的限制是很重要的(一 些系统允许设置非常短的时间间隔,而其他的系统有一个分辨率,比如说10毫 秒,而且总是将所有设置时间取整到那个值)。而且,关于‘sleep()’,你设置 的延迟只是最小值(译者注:实际延迟的最小值);经过这段时间的延迟,会有 一个中间时间间隔直到你的进程重新被调度到。