Python 不参加我的绿党可以吗?

Python 不参加我的绿党可以吗?,python,gevent,greenlets,Python,Gevent,Greenlets,我们在一个长寿的Python进程中使用gevent,随着时间的推移,我们产生了成千上万的greenlet 我们不会加入这些绿色组织;我们只是产卵然后忘记。(Greenlet任务本身是短暂的,确实会退出。)这样可以吗我们没有加入Greenlets会泄露资源吗?我没有与gevent合作过,所以对此持保留态度。一般来说,对于线程,对join的所有调用都是阻塞,直到线程结束或消亡,这就是本文中提到的全部内容。它通常仅用于同步线程,而不是用于清理,因此您应该不会有问题。您没有泄漏资源,因为当greenle

我们在一个长寿的Python进程中使用
gevent
,随着时间的推移,我们产生了成千上万的greenlet


我们不会加入这些绿色组织;我们只是产卵然后忘记。(Greenlet任务本身是短暂的,确实会退出。)这样可以吗我们没有加入Greenlets会泄露资源吗?

我没有与gevent合作过,所以对此持保留态度。一般来说,对于线程,对join的所有调用都是阻塞,直到线程结束或消亡,这就是本文中提到的全部内容。它通常仅用于同步线程,而不是用于清理,因此您应该不会有问题。

您没有泄漏资源,因为当greenlet死掉时,所有已使用的内存都将被正确清理(垃圾收集是自动的)。所以我不会为此担心

当然,您对体系结构的描述并不能使它看起来非常健壮。因此,虽然您本身不会泄漏内存,但如果您真的启动了太多的greenlet,您可能会发现您的主greenlet很少执行。换句话说,每当它向中心屈服时(通过sleep或任何其他阻塞调用),您可能会发现在主greenlet恢复生命之前,数千个greenlet被调用和执行


还要注意在集线器和Greenlet之间来回切换的开销。

谢谢。“主绿地”和“枢纽”一样吗?不,一点也不一样。主果岭是第一个开始的果岭。hub只负责将执行从一个greenlet切换到另一个greenlet