代码之家  ›  专栏  ›  技术社区  ›  Max Lobur

猴子修补环境中的eventlet.greenthread.sleep VS time.sleep

  •  3
  • Max Lobur  · 技术社区  · 11 年前

    我们在eventlet绿色线程上运行服务器+猴子修补一切。 我需要通过定期检查来实现等待循环,并且我想将睡眠放在里面。

    以下两者之间是否存在差异:

    eventlet.greenthread.sleep(1) AND time.sleep(1) 
    

    在猴子修补的环境中?我想知道猴子补丁是否能处理时间

    1 回复  |  直到 11 年前
        1
  •  6
  •   dano    11 年前

    它们在猴子修补的环境中是一样的。 eventlet 猴子补丁 time.sleep 默认情况下:

    无猴子补丁:

    >>> import time
    >>> time.sleep.__module__
    'time'
    

    使用猴子补丁:

    >>> import eventlet
    >>> eventlet.monkey_patch()
    >>> import time
    >>> time.sleep.__module__
    'eventlet.greenthread'
    

    唯一不会是猴子补丁的方法是 eventlet.monkey_patch 调用指定monkey补丁的模块子集,省略 'time' :

    >>> import eventlet
    >>> eventlet.monkey_patch(socket=True, thread=True)
    >>> import time
    >>> time.sleep.__module__
    'time'