我正在阅读应用程序代码,引起了我的注意。代码是:usleep(6*1000*1000)
。我知道他们使用这种格式来解决可读性问题。
我认为sleep
和usleep
都使用nanosleep
函数,所以我的问题是:为什么不使用sleep(6)做同样的事情(即:睡觉为6秒)?当我们使用usleep
时,我们是否获得了性能?是usleep
更多"泛型" ?
答案 0 :(得分:7)
我认为睡眠和睡眠都使用纳米睡眠功能,
他们可能会这样做,或者他们可能不这样做。我并不知道C和POSIX标准中有任何理由可以证明这一点。
所以我的问题是:为什么不使用完全相同的睡眠(6)(即:睡眠6秒)?当我们使用usleep时,我们是否获得了性能?是更多"泛型" ?
sleep()
函数起源于AT& T Unix版本7. usleep()
函数起源于BSD 4.3。虽然POSIX标准化了两者的特征混合,但有一段时间你可能只有两个中的一个可用,哪一个是你特定的Unix风格的函数。
如今,usleep()
已过时,已从POSIX中删除。它仍然受到广泛支持,但在新代码中应使用nanosleep()
(或sleep()
)。
答案 1 :(得分:2)
睡眠的参数是秒,usleep的参数是微秒。除此之外,我认为它们是相同的。
睡觉($ n)== usleep($ n * 1000000) usleep(25000)只能睡0.025秒。