我正在读一段应用程序代码,有件事引起了我的注意。代码是:usleep(6*1000*1000)。我知道他们使用这种格式来解决可读性问题。
我认为sleep和usleep都使用nanosleep函数,所以我的问题是:为什么不使用sleep(6)来做完全相同的事情(即:睡眠6秒)?当我们使用usleep时,我们的性能是否有所提高?usleep是不是更“通用”?
发布于 2017-03-18 00:26:29
我认为睡眠和我们的睡眠都使用纳米睡眠功能,
他们可能会这样做,也可能不会。我不知道C和POSIX标准中有任何理由支持这一假设。
所以我的问题是:为什么不使用
(6)来做完全相同的事情(即:睡眠6秒)?当我们使用usleep时,我们的性能会有所提高吗?usleep是不是更“通用”?
sleep()函数起源于AT&T Unix版本7。usleep()函数起源于BSD4.3。尽管POSIX对从两者中提取的混合特性进行了标准化,但有一段时间,您可能只有两种特性中的一种可用,其中一种是您特定风格的Unix的函数。
现在,usleep()已经过时了,已经从POSIX中删除了。它仍然被广泛支持,但是应该在新代码中使用nanosleep() (或sleep())。
发布于 2017-03-17 23:57:14
睡眠的参数是秒,usleep的参数是微秒。除此之外,我认为它们是一样的。
睡眠($n) ==使用睡眠($n* 1000000)使用睡眠(25000)仅休眠0.025秒。
https://stackoverflow.com/questions/42861913
复制相似问题