Guido Van Rossum の 2012 Pycon トークで、彼はスレッドについて次のように述べています。
本来の目的でスレッドを使用する場合、OS レベルのスレッドは、並列計算を行うためではなく、並列 IO を行うためのものです。[ソース]
従来、プロセス対スレッドに関する議論は、スケジューリング、コンテキスト スイッチのコスト、またはリソース共有のコストの違いを中心に展開されていました。
ただし、CPU を集中的に使用するタスクと IO を比較すると、どちらか一方が他方よりも優れているという考えについては、私は学んだことも聞いたこともありません。プロセスとスレッドの間に基本的に 1 対 1 の関係がある場合 (常に想定できるとは限りません)、CPU 対 IO の観点から、どちらを使用するかは重要ですか?
標準の pthread ドキュメントは、この特定の主張を明らかにしていません。誰かがより良い情報源を知っていますか?
これらの領域のいずれかにボトルネックがあることが知られているソフトウェアを設計する際に、どちらか一方を使用した方がよいという一般的なケースはありますか?