タスク キュー/スレッド プール パターン システムをDのnスレッド システムと比較しています。私は Tango ライブラリを使用しており、例として Web サーバーを構築しています。
tango.core.ThreadPool
私のプロジェクトは従来のスレッド化とタスク キューの間の使いやすさとパフォーマンスに重点を置いているため、スレッド プールとして使用することにしました。
ドキュメントには、3 つのオプションがあることが示されています。
ThreadPool.wait()
- プールがキューからタスクを消費している間、現在のスレッドをブロックします。ThreadPool.shutdown()
- プール内のタスクを終了しますが、キュー内のタスクは終了しません。ThreadPool.finish()
- プールとキュー内のすべてのタスクを終了しますが、それ以上は受け入れません。
これらのどれも私が欲しいものではありません。これらのシステムでは、タスクのリストを増やすことができるはずだと私は理解しています。Web サーバーは非常に単純でナイーブです。リソース管理がタスクキュー内のものをできるだけ早く消費することだけで構成されている場合でも、多くの同時要求にスケーリングするために最善を尽くしてほしい.
メインスレッドが他のスレッドに参加する必要があるためだと思いますが、スレッドに関する知識が少し不足しています。