C - 为什么使用睡眠而不是睡眠



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

我认为sleepusleep都使用 nanosleep 函数,所以我的问题是:为什么不使用做完全相同事情的 sleep(6((即:睡眠 6 秒(?当我们使用usleep时,我们会获得性能吗?usleep更"通用"吗?

我认为睡眠和睡眠都使用纳米睡眠功能,

他们可能会这样做,也可能不会。 我不知道C和POSIX标准中有任何理由支持这种假设。

所以我的问题是:为什么不使用做完全相同事情的 sleep(6((即:睡眠 6 秒(?当我们使用睡眠时,我们会提高性能吗?睡得更"通用"吗?

sleep()函数起源于AT&T Unix版本7。 usleep()函数起源于 BSD 4.3。 尽管 POSIX 标准化了从两者中提取的混合功能,但曾经有一段时间,您可能只有两者中的一个可用,而哪一个是你特定的 Unix 风格的功能。

如今,usleep()已经过时,并且已从POSIX中删除。 它仍然得到广泛支持,但nanosleep()(或sleep()(应该在新代码中使用。

睡眠的参数是秒,睡眠的参数是微秒。除此之外,我认为它们是相同的。

睡眠($n( == 睡眠($n * 1000000(usleep(25000( 仅休眠 0.025 秒。

相关内容

  • 没有找到相关文章

最新更新