>>616
はいはいパソコンの大先生乙
ゲームだとマルチスレッドを利用する場合でも、UIスレッドと描画スレッドを分ける程度でしかなかったりするんだわ
描画部分のボトルネックは多くのケースでGPUだからな
同期コストやデッドロックの危険性を増やしてまでCPUの負荷分散を行うなんて稀

Why do people think single-core performance is more important than aggregate multi-core performance?

https://www.quora.com/Why-do-people-think-single-core-performance-is-more-important-than-aggregate-multi-core-performance

スレッドとは、実行中のプログラムの 1 つの流れを意味します。1 つのスレッドは、一度に 1 つのコアでのみ実行できます。

デフォルトでは、事実上すべての一般的なプログラミング言語は、1 つのスレッドしか持たないプログラムを作成します。複数のスレッドを作成するには、通常、プログラマはそれらの余分なスレッドを明示的に作成および管理する必要があります。また、スレッド間でのデータの同期などから、多くの余計な混乱が生じることがよくあります。

また、スレッドが大量のデータを共有する必要がある場合、すべてのスレッドが正しいデータを取得し続けるための同期オーバーヘッドにより、大量のオーバーヘッドが追加され、プログラムの速度が低下する可能性があります。同期のオーバーヘッドにより、マルチスレッドのすべての利点が失われる場合があります。

また、Python や JavaScript などの一部の一般的な言語には、データを効果的に共有できるスレッドさえありません。純粋なスレッドほど効果的にデータを共有できない複数のプロセスしかありません。

スレッドごと (通常は「シングルコア」) のパフォーマンスを向上させると、すべてが高速になります。プログラマーの余分な作業はまったく必要ありません。より多くのスレッドを同時に実行できることは、それらの複数のスレッドを実行する準備ができている場合にのみ役立ちます。

また、プログラムのワークロードの 50% を並列化できて 50% を並列化できない場合、コアの数に関係なく、コードの実行速度が 2 倍以上になることはありません。

また、一部のアルゴリズムは本質的にシリアルであり、複数のスレッドに並列化することはできません。または、それらを並列化すると、かなりのオーバーヘッドが追加されます。