私はDにn個 -threadsシステムにタスクキュー/スレッドプールのパターンシステムを比較しています、私はDプログラミング言語には本当に新しいですが、前にC、Java、およびPythonでスレッドで働いています。私はTangoライブラリを使用しています。私は例としてWebサーバーを構築しています。タンゴ(D)ThreadPoolにタスクを非同期で追加する方法はありますか?
私は私のプロジェクトは、伝統的なスレッドとタスクキューの間、使用のしやすさとパフォーマンスに焦点を当てているように、私のスレッドプールとしてtango.core.ThreadPool
を使用することにしました。プールはキューからタスクを消費しながら、現在のスレッドをブロック -
ThreadPool.wait()
:documentationは、私は3つのオプションを持っていることを示しています。
ThreadPool.shutdown()
は - プール内のタスクを終了しますが、キュー内のないもの。ThreadPool.finish()
- プールとキュー内のすべてのタスクを終了しますが、それ以上受け入れません。これらの事の
どれも私が欲しいものではありません。あなたの仕事のリストは、これらのシステムで成長できるはずですが、私の理解です。 Webサーバーは非常にシンプルでナイーブです。リソース管理ができるだけ早くタスクキュー内のものを消費するだけであっても、多くの同時リクエストにスケーリングするのに最善を尽くしたいと思うだけです。
私は、メインスレッドが他のスレッドに参加する必要があるので、それはだと思われるが、私は私のスレッドの知識に少し錆びです。 void append(JobD job, Args args)
について
なぜD2を使用しないのですか?それは良い/良い並列処理機能を持っています。 –
@Daevius:そうでなければBrianはTangoにrenonceする必要があります。 – menjaraz
@Daevius:私は開発環境のためにD v。1に制限されていました。 LDCとTangoだけが利用可能でした。 – Brian