0

Python(2.6.6)では、スレッド/プロセスがネットワーク(メッセージキュー)を同時に作業(コンパイル)しながらチェックする最良の方法は何ですか。メッセージ キューでコマンドを受信した場合、コンパイル スレッドを強制終了して生成できる必要があります。

4

2 に答える 2

0

前述のように、スレッドを強制終了するためのPythonAPIはありません。マルチプロセッシングまたは協調型デザインパターンのいずれかを使用する必要があります。

後者を実行したい場合は、ワーカースレッドが定期的に強制終了するかどうかをチェックする協調型デザインパターンを使用できます。例えば:

while not self.stopped:
     do_come_compilation_stuff()

次に、メインスレッドで、ワーカースレッドの停止フラグを設定する必要があります。これは、プログラムでCTRL-Cなどの信号を正しく処理する場合にも便利な設計パターンです。

于 2012-10-23T09:07:48.057 に答える
0

スレッドを強制終了するための公式の Python API はありません。OS 固有のメソッドを使用する必要があります。

multiprocessing.Process( を使用して)新しいプロセスを生成する場合は、でそれを強制終了できます.terminate()。もちろん、これによりすぐに停止します。その後はクリーンアップされず、共有データ構造が汚染される可能性があります。

于 2012-10-23T08:57:27.280 に答える