スレッドは、オペレーティング システムが操作のスケジューリングを実行できる最小単位です。これはプロセスに含まれており、プロセス内の実際の操作単位となります。スレッドとは、プロセス内の単一の順次制御フローを指します。プロセス内で複数のスレッドを同時に実行でき、各スレッドは異なるタスクを並行して実行します。
#スレッドは、独立したスケジューリングとディスパッチの基本単位です。スレッドには、オペレーティング システム カーネルによってスケジュールされたカーネル スレッド (Win32 スレッドなど)、ユーザー プロセス自体によってスケジュールされたユーザー スレッド (Linux プラットフォームの POSIX スレッドなど)、またはカーネル プロセスとユーザー プロセスによる混合スケジューリング (Windows 7 スレッドなど) があります。
同じプロセス内の複数のスレッドは、仮想アドレス空間、ファイル記述子、信号処理など、プロセス内のすべてのシステム リソースを共有します。ただし、同じプロセス内の複数のスレッドには、独自のコール スタック、独自のレジスタ コンテキスト、および独自のスレッド ローカル ストレージがあります。
プロセスには多数のスレッドを含めることができ、各スレッドは異なるタスクを並行して実行します。
特長
マルチスレッド OS では、通常、プロセスに複数のスレッドが含まれており、各スレッドは CPU 使用率の基本単位として使用され、コストとなります。最小限のオーバーヘッドエンティティ。スレッドには次のプロパティがあります。
1)、軽量エンティティ
スレッド内のエンティティは基本的にシステム リソースを所有せず、独立した動作を保証できるいくつかの不可欠なリソースのみを持ちます。
スレッド エンティティには、プログラム、データ、TCB が含まれます。スレッドは動的概念であり、その動的特性はスレッド制御ブロック (TCB) によって記述されます。
2)、独立したスケジューリングとディスパッチの基本単位。
マルチスレッド OS では、スレッドは独立して実行できる基本単位であるため、独立したスケジューリングとディスパッチの基本単位でもあります。スレッドは非常に「軽い」ため、スレッドの切り替えは非常に高速で、(同じプロセス内での) オーバーヘッドはほとんどありません。
3) は同時に実行できます。
プロセス内の複数のスレッドを同時に実行でき、プロセス内のすべてのスレッドを同時に実行することもできます。同様に、異なるプロセスのスレッドを同時に実行することもでき、プロセッサーと周辺機器が並行して動作する能力。
4)、共有プロセス リソース。
同じプロセス内の各スレッドは、プロセスが所有するリソースを共有できます。これは、すべてのスレッドが同じアドレス空間 (プロセスのアドレス空間) を持っているという点で最初に現れます。これは、スレッドがすべてのスレッドにアクセスできることを意味します。このアドレス空間内の仮想アドレスに加えて、プロセスが所有するオープン ファイル、タイマー、セマフォ メカニズムなどにもアクセスできます。同じプロセス内のスレッドはメモリとファイルを共有するため、スレッドはカーネルを呼び出すことなく相互に通信します。
以上がスレッドとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。