ホームページ  >  記事  >  Java  >  マルチスレッドは同時ですか、それとも並列ですか?

マルチスレッドは同時ですか、それとも並列ですか?

(*-*)浩
(*-*)浩オリジナル
2019-06-19 11:28:409241ブラウズ

いわゆるプロセス (プロセス) は、特定のリソースを含むメモリ領域です。オペレーティング システムはプロセスを使用して、その作業を機能単位に分割します。プロセスに含まれる 1 つ以上の実行ユニットはスレッドと呼ばれます。プロセスには、プロセスに含まれるスレッドのみがアクセスできるプライベート仮想アドレス空間もあります。

マルチスレッドは同時ですか、それとも並列ですか?

#スレッドは 1 つのプロセスにのみ属することができ、そのプロセスが所有するリソースにのみアクセスできます。オペレーティング システムがプロセスを作成すると、そのプロセスはメイン スレッドまたはプライマリ スレッドと呼ばれるスレッドに自動的に適用されます。 (推奨学習: Java ビデオ チュートリアル )

プロセスは、本当の意味で同時に実行されるのではなく、同時に実行されます。
プロセスには少なくとも 1 つのスレッドがあります。スレッドの分割規模はプロセスの分割規模よりも小さいため、マルチスレッドプログラムの同時実行性が高くなります。さらに、プロセスは実行中に独立したメモリ ユニットを持ち、複数のスレッドがメモリを共有するため、プログラムの実行効率が大幅に向上します。

実行中のスレッドとプロセスの違いは、それぞれの独立したスレッドにはプログラム実行の入り口、順次実行シーケンス、およびプログラムの出口があることです。ただし、スレッドは独立して実行できず、アプリケーション プログラム内に存在する必要があり、アプリケーション プログラムは複数のスレッドの実行制御を提供します。

論理的な観点から見ると、マルチスレッドの意味は、アプリケーション内で複数の実行部分を同時に実行できることです。ただし、オペレーティング システムは、プロセスのスケジューリング、管理、およびリソース割り当てを実装するために、複数のスレッドを複数の独立したアプリケーションとはみなしません。

複数のスレッドまたはプロセスが「同時に」実行されるのは、単なる感覚的な現れです。実際には、プロセスとスレッドは同時に実行されます。OS のスレッド スケジューリング メカニズムは、時間を多くの時間セグメント (タイム スライス) に分割し、実行中のプログラムにできるだけ均等に分配します。CPU タイム スライスを取得するスレッドまたはプロセスは、実行され、その他の場合は待機します。 CPU は、これらのプロセスまたはスレッド間を行き来します。ミクロレベルではすべてのプロセスとスレッドが停止して停止しますが、マクロレベルではすべてが実行されます。すべてが実行されるこの現象は同時実行と呼ばれますが、絶対的な意味で同時に発生するわけではありません。

その他の Java 関連の技術記事については、Java 開発チュートリアル 列にアクセスして学習してください!

以上がマルチスレッドは同時ですか、それとも並列ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。