15

シングルコアのシングルプロセッサで実行されるマルチスレッドコードを書くことに本当に利点があるかどうか、誰か説明してもらえますか? たとえば、ページが前述のコード片と相互に排他的であるようにドキュメントページを処理する方法。

真のマルチスレッド化が不可能なため、一見利点がないように見えます。つまり、OS はとにかくスレッドのコンテキストを切り替える必要があります。シングルスレッドの方法で何かをコーディングするだけで、実際により効率的になるかどうか疑問に思っています。

明らかに、マルチスレッド コードを作成することが理にかなっているケースはたくさんありますが、アプリケーションがシングル コア プロセッサで実行されている場合に、マルチスレッド コードを作成する利点が本当にあるのかという疑問が生じます。

編集:「アプリケーション」ではなく「コードの一部」と言ったことに注意してください-上記の例を見てください。マルチスレッド アプリケーションを使用することには明らかに利点があります。

4

3 に答える 3

11

はい、マルチスレッドはシングルコアで役立ちます。アプリケーション内の 1 つのスレッドが何かを待機してブロックされた場合 (ネットワーク カードからのデータや、ディスクがデータを書き込むのを待機しているなど)、CPU は別のスレッドに切り替えて作業を続けることができます。

BeOS は、シングル コア プロセッサの時代であっても、パーベイシブ マルチスレッドを念頭に置いて作成されました。その結果、非常に応答性の高い OS が実現しましたが、プログラミングがかなり難しい OS でした。

于 2013-12-09T17:54:51.320 に答える