Linux pthreads はユーザー レベルのスレッドですか、それともカーネル レベルのスレッドですか?
質問する
2943 次
1 に答える
5
Linux カーネルは、プロセスではなくスレッドをスケジュールします。スケジューラに関する限り、プロセスは現在、主にユーザーランドの目的のための人工的な構造です。
プロセスを作成すると、スレッド ID (カーネルは実際にはこれを PID と呼んでいますが、混乱を招く可能性があるため、ここでは TID と呼びます) とスレッド グループ ID (TGID) は単一のスレッドです。同一。
スレッドが (新しいプロセスではなく) 新しいスレッドを作成する場合、作成者から TGID を継承しますが、新しい TID を取得します。
つまり、スレッドグループはプロセスと見なすことができますが、スケジューラは気にしません。つまり、個々のスレッドで動作します。
したがって、特定の質問への回答として、それらはカーネルレベルのスレッドです。
于 2012-10-30T06:01:19.213 に答える