マルチスレッドのプログラミング

プロセススコープ (非結合スレッド)

非結合スレッドは PTHREAD_SCOPE_PROCESS として生成されます。このようなスレッドはユーザ空間内でスケジュールされ、LWP プールの中の使用可能な LWP に対して接続されたり切り離されたりします。LWP はこのプロセス内のスレッドにのみ使用可能です。つまり、スレッドはこれらの LWP にスケジュールされるわけです。

通常は PTHREAD_SCOPE_PROCESS スレッドを使用します。そうすれば、LWP の間でスレッドの使い回しができるので、スレッドの効率が良くなります (また、Solaris スレッドを THR_UNBOUND 状態で生成するのと同じことになります)。スレッドライブラリは、他のスレッドを考慮しつつ、どのスレッドがカーネルのサービスを受けるかを決定します。