如果您只有一个阻塞函数,那么使用greenthreads是没有任何意义的



Python中的绿色线程通过协作多任务来完成任务。是否应该在以下场景中使用它们,因为它们不会为它让出/传递控制权给其他线程?

场景:

阻塞函数只有一个命令:长时间运行SSH到另一台机器。因此,即使您有多个绿色线程,也有可能多个SSH连接甚至无法打开,因为第一个线程无法将启动连接的控制权交给下一个线程。

将通过SSH在机器上进行安装

使用paramiko或其他Python库运行SSH是套接字IO,使用subprocess也是文件描述符IO,在这两种情况下它都会将控制权交给其他线程。

您需要使用eventlet.monkey_patcheventlet.green.subprocess来进行SSH生成控制。

在这样一个简单的程序中,你不需要任何绿色/OS线程:

import os
os.system('ssh host command')

这取决于您的阻塞函数是否可以使用绿色(非阻塞)ssh调用。有一个"绿色"库,它也是ssh的cabale https://pypi.python.org/pypi/telnetsrv/0.4

相关内容

  • 没有找到相关文章

最新更新