为什么要用睡觉而不是睡觉

时间:2017-03-17 15:51:26

标签: c multithreading sleep usleep

我正在阅读应用程序代码,引起了我的注意。代码是:usleep(6*1000*1000)。我知道他们使用这种格式来解决可读性问题。

我认为sleepusleep都使用nanosleep函数,所以我的问题是:为什么不使用sleep(6)做同样的事情(即:睡觉为6秒)?当我们使用usleep时,我们是否获得了性能?是usleep更多"泛型" ?

2 个答案:

答案 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秒。