ホームページ  >  記事  >  スレッドとは

スレッドとは

青灯夜游
青灯夜游オリジナル
2019-06-11 13:51:4771894ブラウズ

スレッドは、オペレーティング システムが操作のスケジューリングを実行できる最小単位です。これはプロセスに含まれており、プロセス内の実際の操作単位となります。スレッドとは、プロセス内の単一の順次制御フローを指します。プロセス内で複数のスレッドを同時に実行でき、各スレッドは異なるタスクを並行して実行します。

スレッドとは

#スレッドは、独立したスケジューリングとディスパッチの基本単位です。スレッドには、オペレーティング システム カーネルによってスケジュールされたカーネル スレッド (Win32 スレッドなど)、ユーザー プロセス自体によってスケジュールされたユーザー スレッド (Linux プラットフォームの POSIX スレッドなど)、またはカーネル プロセスとユーザー プロセスによる混合スケジューリング (Windows 7 スレッドなど) があります。

同じプロセス内の複数のスレッドは、仮想アドレス空間、ファイル記述子、信号処理など、プロセス内のすべてのシステム リソースを共有します。ただし、同じプロセス内の複数のスレッドには、独自のコール スタック、独自のレジスタ コンテキスト、および独自のスレッド ローカル ストレージがあります。

プロセスには多数のスレッドを含めることができ、各スレッドは異なるタスクを並行して実行します。

特長

マルチスレッド OS では、通常、プロセスに複数のスレッドが含まれており、各スレッドは CPU 使用率の基本単位として使用され、コストとなります。最小限のオーバーヘッドエンティティ。スレッドには次のプロパティがあります。

1)、軽量エンティティ

スレッド内のエンティティは基本的にシステム リソースを所有せず、独立した動作を保証できるいくつかの不可欠なリソースのみを持ちます。

スレッド エンティティには、プログラム、データ、TCB が含まれます。スレッドは動的概念であり、その動的特性はスレッド制御ブロック (TCB) によって記述されます。

2)、独立したスケジューリングとディスパッチの基本単位。

マルチスレッド OS では、スレッドは独立して実行できる基本単位であるため、独立したスケジューリングとディスパッチの基本単位でもあります。スレッドは非常に「軽い」ため、スレッドの切り替えは非常に高速で、(同じプロセス内での) オーバーヘッドはほとんどありません。

3) は同時に実行できます。

プロセス内の複数のスレッドを同時に実行でき、プロセス内のすべてのスレッドを同時に実行することもできます。同様に、異なるプロセスのスレッドを同時に実行することもでき、プロセッサーと周辺機器が並行して動作する能力。

4)、共有プロセス リソース。

同じプロセス内の各スレッドは、プロセスが所有するリソースを共有できます。これは、すべてのスレッドが同じアドレス空間 (プロセスのアドレス空間) を持っているという点で最初に現れます。これは、スレッドがすべてのスレッドにアクセスできることを意味します。このアドレス空間内の仮想アドレスに加えて、プロセスが所有するオープン ファイル、タイマー、セマフォ メカニズムなどにもアクセスできます。同じプロセス内のスレッドはメモリとファイルを共有するため、スレッドはカーネルを呼び出すことなく相互に通信します。

以上がスレッドとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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