2017-09-07 12 views
-1

私は少し混乱しています。マルチスレッドは並列処理を必要とするため、複数のコアを使用して異なるスレッドを実行できないのはなぜですか? この文章はこのリンクで見つかりました。 https://www.tutorialspoint.com/operating_system/os_multi_threading.htm 「マルチスレッドアプリケーションはマルチプロセッシングを利用できません」と説明してください。事前にマルチスレッドでマルチプロセッシングを利用できないのは本当ですか?もしそうなら、なぜですか?

感謝。

答えて

1

この文でのマルチプロセッシングは、プロセッサではなく複数のプロセスに関するものです。

同じプロセスに属するスレッドは分離されません。たとえば、スレッドがクラッシュすると、プログラム全体がクラッシュします。

UPD:申し訳ありませんが、私は記事を再読して、私の最初の回答が間違っていたことに気付きました。著者は、パラレル化を行わずに同じ実行ユニットから実行されるソフトウェア "エミュレート"スレッドを考慮しているようです。実際には、このようなスレッド・ライブラリの実装はほとんどありません。ほとんどのスレッドライブラリはカーネルスレッドによってバックアップされています。

+0

同じプロセスの複数のスレッドを複数のコアで実行できると言うことができますか? –

+0

通常、はい、できます –

+0

スレッドが単一のコアでのみ実行できるEunuchsの亜種がいくつかあります。しかし、ますます例外的なケースが増えています。 – user3344003

関連する問題