2

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

设想:

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

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

4

2 回答 2

0

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

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

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

import os
os.system('ssh host command')
于 2014-05-14T06:24:19.790 回答
0

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

于 2014-05-14T06:26:17.543 回答