3

我们在 eventlet green-threads + monkey-patching 上运行服务器。我需要通过定期检查来实现等待循环,并且我想把 sleep 放在里面。

之间有什么区别:

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

在猴子修补的环境中?我想知道猴子补丁是否可以处理 time.sleep

4

1 回答 1

6

它们在猴子补丁环境中是相同的。eventlet默认情况下的猴子补丁time.sleep

没有猴子补丁:

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

使用猴子补丁:

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

它不会是猴子补丁的唯一方法是,如果eventlet.monkey_patch调用指定了猴子补丁的模块子集,则省略'time'

>>> import eventlet
>>> eventlet.monkey_patch(socket=True, thread=True)
>>> import time
>>> time.sleep.__module__
'time'
于 2014-08-14T18:39:15.403 回答