目次:
定義-マルチスレッドとはどういう意味ですか?
マルチスレッドは、独立して実行するがプロセスリソースを共有するように、プロセスのコンテキスト内に複数のスレッドが存在できるようにする実行モデルの一種です。 スレッドは、ホストプロセスのアドレス空間で、優先スケジュール、例外ハンドラ、CPUレジスタのセット、スタック状態など、実行に関連する情報のリストを保持します。
マルチスレッド化は、スレッド化とも呼ばれます。
Techopediaはマルチスレッドを説明します
スレッドは、メイン実行スレッドがユーザー入力に応答できるようにすることでシングルプロセッサシステムで役立ち、追加のワーカースレッドはバックグラウンドでユーザーの介入を必要としない長時間実行タスクを実行できます。 マルチプロセッサシステムでのスレッド化により、複数のプロセッサ間でスレッドが実際に同時実行されるため、高速になります。 ただし、レース条件、デッドロックなどの直感的でない動作を回避するには、より慎重なプログラミングが必要です。
オペレーティングシステムは、2つの方法でスレッド化を使用します。
- コンテキストスイッチがオペレーティングシステムによって制御される、プリエンプティブマルチスレッド。 コンテキストの切り替えは不適切なタイミングで実行される可能性があります。そのため、優先度の低いスレッドが優先度の高いスレッドを間接的に横取りする可能性があります。
- コンテキストの切り替えがスレッドによって制御される協調マルチスレッド。 これにより、リソースが解放されるまでスレッドがブロックされると、デッドロックなどの問題が発生する可能性があります。
32ビット版と64ビット版のWindowsは、すべてのスレッドが等しいタイムスライスを取得し、キューベースモードで処理されるように、利用可能なプロセッサ時間を共有するプリエンプティブマルチスレッドを使用します。 スレッドの切り替え中に、横取りされたスレッドのコンテキストが保存され、キュー内の次のスレッドに再ロードされます。 タイムスライスは非常に短いため、実行中のスレッドは並列で実行されているようです。
この定義は、コンピューターアーキテクチャーのコンテキストで記述されました。