スレッドライブラリは、カーネルによってサポートされる軽量プロセス (LWP) と呼ばれる制御スレッドを基礎としています。 LWP は、コードまたはシステムコールを実行する仮想 CPU と見なすことができます。
通常、スレッドを使用するプログラミングで LWP を意識する必要はありません。以下に述べる LWP の説明は、プロセススコープ (非結合スレッド)で述べるスケジューリングスコープの違いを理解する際の参考にしてください。
fopen() や fread() などの stdio ライブラリルーチンが open() や read() などのシステムコールを使用するのと同じように、スレッドインタフェースも LWP インタフェースを使用します。
軽量プロセス (LWP) はユーザーレベルとカーネルレベルの橋渡しをします。各プロセスは、1 つ以上の LWP で構成されます。各 LWP は、1 つ以上のユーザースレッドを実行します (図 1–1 を参照)。
各 LWP はカーネルプールの中のカーネルリソースであり、スレッドに割り当てられ たり、割り当てを解除されたりします。