gpt4 book ai didi

python - 使用补丁线程与原生 gevent greenlets 的缺点?

转载 作者:太空狗 更新时间:2023-10-30 01:29:57 28 4
gpt4 key购买 nike

我的理解是,一旦我调用了 gevent.monkey.patch_all(),标准线程模块就会被修改为使用 greenlets 而不是 python 线程。因此,如果我根据 python 线程、锁、信号量等编写我的应用程序,然后调用 patch_all,我是否获得了 gevent 的全部好处,或者与使用显式 gevent 等价物相比,我是否失去了一些东西?

这个问题背后的动机是我正在编写一个使用一些线程/greenlets 的模块,我正在决定在使用 gevent 和使用线程之间进行显式切换是否有用,或者我是否可以只使用线程+ patch_all 而不会丢失任何东西。

放在代码里,是不是...

def myfunction():
print 'ohai'

Greenlet.spawn(myfunction)

...这有什么不同吗?

import gevent.monkey
gevent.monkey.patch_all()
def mythread(threading.Thread):
def run(self):
print 'ohai'

mythread().start()

最佳答案

至少你会放弃一些特定于 greenlet 的方法:link、kill、join 等。此外,您不能将线程与 gevent.pool 模块一起使用,这可能非常有用。并且创建 Thread 对象的开销非常小。

关于python - 使用补丁线程与原生 gevent greenlets 的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793894/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com