大抵、最初にスレッドを増やすことを覚えて、次に減らす努力を始めるね。
シングルスレッドのプログラムが書けるようになる。
↓
並行処理のためにスレッドを作ることを覚える。
↓
楽しくなってやたらとスレッドを作る。
↓
スレッド切り替えがオーバヘッドになることを覚える。
↓
非同期処理を組み合わせてスレッド数を節約する努力を始める。
↓
最終的にスレッドプールに落ち着く。
で、現代的なOSはスレッドプールのディスパッチをカーネルランドでできるAPIを持つようになる、と。
epollとかIOCPとか。
コンピューティング能力を使い切るための並列処理はまた別。