APIとして Python Eve を使用して MongoDB へのデータベースインターフェイスを作成しています。
データベースには、いくつかの計算に必要なパラメータと値を含むいくつかのドキュメントが格納されています。目的のデータにアクセスする必要があるすべての計算ルーチンを含むPythonモジュールを作成しました。
計算を完了するには少し時間がかかるため、並流シミュレーションに複数のコアを使用するためにマルチスレッドではなくマルチプロセッシングを優先します(計算を並列に実行し、コアごとに1つの計算を実行しますが、入力パラメーターが異なり、1つの計算を複数のコアに分割しません)。
これらの並列計算を独自の(サブ)プロセスとして開始するために、「スレッドオブザーバー」と呼ばれる別のスレッドによって監視される親スレッドのようなものを使用することを考えました。これらの計算プロセスのそれぞれがデータベースにアクセスする必要があるため、eve-APIを requests
モジュールと組み合わせて使用することを考えました。
これらすべての考えはすべて、次のような設定につながります。
この概念に基づいて、親スレッドからサブプロセスを制御する方法についてはわかりません。 Process 1
は、Thread 1
終了しますか?
注:目的のソリューションは、UNIXベースのマシンとWindowsベースのマシンの両方で機能する必要があります。したがって、開始されたプロセスから返されたpid
を使用してkill
を使用して強制終了することは、Windowsマシンでは実行できないため機能しません。