3

重複の可能性:
Linux の pthread はスケジューラーによってどのように認識されるか

Linux pthreads はユーザー レベルのスレッドですか、それともカーネル レベルのスレッドですか?

4

1 に答える 1

5

Linux カーネルは、プロセスではなくスレッドをスケジュールします。スケジューラに関する限り、プロセスは現在、主にユーザーランドの目的のための人工的な構造です。

プロセスを作成すると、スレッド ID (カーネルは実際にはこれを PID と呼んでいますが、混乱を招く可能性があるため、ここでは TID と呼びます) とスレッド グループ ID (TGID) は単一のスレッドです。同一。

スレッドが (新しいプロセスではなく) 新しいスレッドを作成する場合、作成者から TGID を継承しますが、新しい TID を取得します。

つまり、スレッドグループはプロセスと見なすことができますが、スケジューラは気にしません。つまり、個々のスレッドで動作します。

したがって、特定の質問への回答として、それらはカーネルレベルのスレッドです。

于 2012-10-30T06:01:19.213 に答える