如果你有一个阻塞功能,任何点使用greenthreads

时间:2014-05-13 12:27:25

标签: python gevent eventlet green-threads

Python中的绿色线程具有协作式多任务处理功能。它们是否应该用于以下场景,因为它们不会将控制权传递给其他线程。

情景:

阻塞功能只有一个命令:长时间运行SSH到另一台机器。因此,即使你有多个绿色线程,它也有可能甚至没有打开多个SSH连接,因为第一个线程不能控制下一个连接以启动连接。

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

这取决于你的阻止功能是否可以使用绿色(非阻塞)ssh调用。有一个'绿色'图书馆,也是ssh https://pypi.python.org/pypi/telnetsrv/0.4

的套件