Open2
Webサーバー入門
シングルスレッドの不都合
webサーバーがシングルスレッドの場合だと、リクエストしてレスポンスが返ってくるまで次のリクエストを処理することができない。
シンプルな処理であれば、ある程度のリクエスト量でも問題はないかもしれないが、複雑な処理になるとレスポンスが遅くなってしまいユーザーを待たせてしまう。
その問題を解決するのがスレッドプール
スレッドプールとは
待機し、タスクを処理する準備のできた一塊りの大量に生成されたスレッド
※注意 スレッド数は固定値にする
The Rust Programming Languageからの引用
プログラムが新しいタスクを受け取ったら、プールのスレッドのどれかをタスクにあてがい、 そのスレッドがそのタスクを処理します。 プールの残りのスレッドは、最初のスレッドが処理中にやってくる他のあらゆるタスクを扱うために利用可能です。 最初のスレッドがタスクの処理を完了したら、アイドル状態のスレッドプールに戻り、新しいタスクを処理する準備ができます。 スレッドプールにより、並行で接続を処理でき、サーバのスループットを向上させます。