2

Python のグリーン スレッドには、ジョブを完了するための協調的なマルチタスキングがあります。次のシナリオで使用する必要があります。これは、他のスレッドに制御を譲ったり渡したりしないためです。

シナリオ:

ブロッキング機能のコマンドは 1 つだけです。それは、別のマシンへの長時間実行される SSH です。したがって、複数のグリーンスレッドがある場合でも、最初のスレッドが接続を開始するために次のスレッドに制御を渡さないため、複数の SSH 接続が開かない可能性もあります。

マシン上でその SSH を介してインストールが行われます。

4

2 に答える 2

0

または他の Python ライブラリを使用して SSH を実行することparamikoはソケット IO であり、使用するsubprocessこともファイル記述子 IO です。どちらの場合も、他のスレッドに制御を渡します。

この SSH イールド コントロールを使用eventlet.monkey_patchまたは作成する必要があります。eventlet.green.subprocess

次のような単純なプログラムでは、グリーン/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にも対応する「グリーン」ライブラリがあります

于 2014-05-14T06:26:17.543 に答える