私はリアルタイムデータグラバーに取り組んでいます。while True ループがあり、その中で比較的小さなタスクを実行するスレッドを生成します (HTTP 経由でサード パーティの API にクエリを実行し、高速化を達成するために並列でクエリを実行しています)。
すべてのスレッドは、特定のデータ系列を更新します。これには 2 秒、3 秒、さらには 5 秒かかる場合があります。ただし、while True ループは、スレッドが終了するのにかかる時間よりも速くスレッドを生成する可能性があります。したがって、生成されたスレッドが前のスレッドが終了するのを待つ必要があります。
一般に、スレッドは HTTP サーバーにクエリを実行するため、スレッドが完了するまでにかかる時間は予測できません...
すべてのスレッドに名前付きセマフォを作成することを考えていました。特定のシリーズ用に生成されたスレッドが、同じシリーズで動作している前のスレッドを見つけた場合、待機します。
私が見ることができる唯一の問題は、スレッドのバックログの可能性です..
ここでの最善の解決策は何ですか? セロリのようなものを調べる必要がありますか?現在、スレッドモジュールを使用しています。
ありがとう!