4

現在の温度を継続的にファイルに保存し、matplotlib を使用してグラフを描画する温度監視モジュールを作成しようとしています。この機能が機能しているので、次のように使用できます。

with TemperatureMonitoring():
    # do stuff

__enter__get が呼び出されると、プロセスが開始されます。これは、スリープしてファイルに書き込む無限ループです。 get が呼び出される__exit__と、プロセスが終了し、ファイルが画面にプロットされます。

今、改善したいので、子プロセスが親プロセスを制御できるようにしたいと思います。温度が長くなりすぎると、一時停止してコンピュータが冷えるのを待ちます。モジュールを使用するのはこれが初めてmultiprocessingですが、メインプロセスを一時停止すると、子も一時停止するようです。したがって、重大な状態に達した場合、一時停止を解除することはできません。そのため、コードの実行が終了したときに親は子を終了できる必要があり、子は必要に応じて親を一時停止/再開できる必要があります。これを達成する明白な方法はありますか?

4

2 に答える 2

1

これを行う最もクリーンな方法は、 duplex を使用することmultiprocessing.Pipeです。次に、親は子にコマンドを送信してシャットダウンすることができ、子は親に温度レベルに関する通知を送信できます。

于 2013-07-26T02:42:29.977 に答える