Python 中的绿色线程具有协作式多任务处理来完成工作。它们是否应该用于以下场景,因为它们不会为此产生/将控制权传递给其他线程。
设想:
阻塞功能只有一个命令:一个长时间运行的 SSH 到另一台机器。因此,即使您有多个绿色线程,也有可能多个 SSH 连接甚至都没有打开,因为第一个线程不会控制下一个线程来启动连接。
将通过机器上的 SSH 进行安装
Python 中的绿色线程具有协作式多任务处理来完成工作。它们是否应该用于以下场景,因为它们不会为此产生/将控制权传递给其他线程。
设想:
阻塞功能只有一个命令:一个长时间运行的 SSH 到另一台机器。因此,即使您有多个绿色线程,也有可能多个 SSH 连接甚至都没有打开,因为第一个线程不会控制下一个线程来启动连接。
将通过机器上的 SSH 进行安装
运行 SSH usingparamiko
或其他 Python 库是套接字 IO, usingsubprocess
也是文件描述符 IO,在这两种情况下,它都会将控制权交给其他线程。
您需要使用eventlet.monkey_patch
或eventlet.green.subprocess
进行此 SSH 屈服控制。
在这样的简单程序中,您不需要任何绿色/OS 线程:
import os
os.system('ssh host command')
好吧,这取决于您的阻塞功能是否可以使用绿色(非阻塞)ssh 调用。有一个“绿色”库,它也是 ssh https://pypi.python.org/pypi/telnetsrv/0.4的 cabale