【问题标题】:Is time.sleep() a CPU bound operation?time.sleep() 是 CPU 绑定操作吗?
【发布时间】:2020-05-25 06:14:50
【问题描述】:

我最近阅读了this asyncio article

time.sleep() 是一个 CPU 绑定操作

我通常与“CPU bound”相关联,即 CPU 实际上正在做某事。所以如果一个程序(A)中有time.sleep(60)然后执行

A: Gets 1 second
B: Gets 59 seconds (uninterrupted)
A: Finished or not?

我一直认为定时器就是 IO。那是错的吗?或者计时器只是一些特殊的东西,因此它们不适合“IO-bound”/“CPU bound”模式?

【问题讨论】:

    标签: python sleep


    【解决方案1】:

    不是。那篇文章滥用了术语。

    受 CPU 限制的操作是一种速度受 CPU 执行速度限制的操作,而不是内存访问速度或网络往返速度或其他一些因素。 time.sleep 不是这样的操作。更快的 CPU 不会使time.sleep 更快。

    【讨论】:

    • 我明白你的推理,它与我的一致。但是 time.sleep I/O 绑定了吗?
    • @MartinThoma:不。更快地执行 I/O 也不会使time.sleep 更快。
    • 所以 time.sleep 既不是 I/O 也不是 CPU 限制(但有时间限制?)。对我来说很有意义:-)
    【解决方案2】:

    马丁·托马

    不,它不受 CPU 限制。

    Document 说。

    你也可以从这里is a time sleep找到类似的信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多