非常に多くの同時スレッド (少なくとも 200) を実行するスクリプトがあります。すべてのスレッドは非常に複雑な評価を行うため、予想外に多くの時間がかかる場合があります。評価方法は C で実装されており、変更できません。すべてのスレッドのメソッド実行時間を制限したい。お知らせ下さい。
1 に答える
1
あなたの問題について私が理解していることから、マルチスレッドの代わりにマルチプロセッシングを使用するのが良いケースかもしれません。マルチプロセッシングを使用すると、システムで利用可能なすべてのリソースを利用できます。注意しないと、一部のリソースを利用できます。
スレッドは実際には並行して実行されるわけではないため、I/O などを大量に待機している場合を除き、別のプロセスから呼び出す方が理にかなっています。Python マルチプロセッシング ライブラリを使用して Python スクリプトから呼び出すことも、C で記述されたラッパーを使用して何らかの形式のプロセス間通信を使用することもできます。2 番目のオプションは、C コードを実行するためだけに別の Python インスタンスを起動するオーバーヘッドを回避します。
time.sleep を呼び出す (または他のタスクを実行して経過時間をシステム クロックで確認する) ことができ、目的の間隔の後に結果を確認して、結果を利用している間、終了していないプロセスを実行し続けることができます。または、その時点で気にしない場合は、シグナルを送信してプロセスを強制終了できます。
于 2012-08-31T23:24:58.750 に答える