0

私が使用するサブプロセスがあります。このプロセスとの間で、それぞれの stdout と stdin に非同期で読み書きできる必要があります。

これどうやってするの?を調べましsubprocessたが、communicateメソッドはプロセスの終了を待機し (これは私が望んでいるものではありません)、subprocess.stdout.readメソッドがブロックされる可能性があります。

サブプロセスはPython スクリプトではありませんが、必要に応じて編集できます。合計で、これらのサブプロセスが約 15 あります。

4

3 に答える 3

0

communicate実装方法をご覧ください。

それを行うには、基本的に2つの方法があります。

  1. select()読み書きできるかどうかを使用して通知されるか、
  2. または、どちらもブロックできる読み取りと書き込みをそれぞれスレッドに委譲します。
于 2012-05-08T08:52:10.390 に答える
0

sarge を見てみましょう: http://sarge.readthedocs.org/en/latest/index.html

sarge ドキュメントから:

Python アプリケーションから外部プログラムと対話したい場合、Sarge は、Python の標準ライブラリーの subprocess モジュールを使用するよりも簡単に作業できるようにすることを目的としたライブラリーです。

于 2012-05-08T12:32:47.000 に答える
0

プロセス間通信にキューまたは NOSQL DB を使用することを検討しましたか? Redis を使用し、プロセスで異なるキーを読み書きすることをお勧めします。

于 2012-05-08T11:17:01.963 に答える