17

Pythonマルチプロセッシングモジュールに問題があります。Process2番目のコアを利用するために、クラスを使用して新しいプロセスを生成しています。この2番目のプロセスは、大量のデータをRAMにロードし、消費するのではなく辛抱強く待機します。

そのプロセスがコマンドで何を出力するかを確認したかったのですがprint、出力されるものは何も表示されません。親プロセスが出力するものだけが表示されます。彼らは2つの異なるプロセスに住んでいるので、これは私には理にかなっています。2番目のプロセスは、独自のシェル/標準出力ウィンドウを生成せず、その出力も親に送信されません。しかし、このプロセスがクラッシュすると、スクリプトが出力するように指示したすべてのものに加えて、スタックトレースとエラーが出力されます。

子プロセスの印刷出力を最初のプロセスに送信する簡単な方法があるのか​​、それともデバッグできるようにシェル/標準出力を生成する方法があるのか​​疑問に思っています。親に印刷を送信して標準出力に印刷できるようにするための専用の印刷物を作成できることは知ってmultiprocessing.Queueいますが、より単純な解決策が存在する場合、これを行う気はありません。

4

1 に答える 1

26

標準出力をフラッシュしようとしましたか?

import sys
print "foo"
sys.stdout.flush()
于 2008-12-14T22:18:22.873 に答える