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

スレッドの並行度 (Solaris スレッドの場合のみ)

特に指定しなければ Solaris のスレッドは、非結合スレッドを実行するためのシステム実行資源 (LWP) の数を実行可能なスレッドの数と同じになるように調整します。この調整は完全なものではありませんが、少なくともプロセスの処理が進行することは保証されます。

同時に実行可能にすべき (コードやシステムコールを実行する) 非結合スレッドの数がわかっている場合は、thr_setconcurrency(3T) によって、その値をスレッドライブラリに指示してください。

各スレッドの生成時に THR_NEW_LWP フラグを指定して、並行度を 1 つ増やす方法もあります。

スレッドの並行度を計算するときは、プロセス間 (USYNC_PROCESS) 同期変数でブロックされている非同期スレッドも、実行可能なスレッドとして数えてください。結合スレッドは LWP と等価で、Solaris スレッドの並行度のサポートを必要としないので、実行可能なスレッドには数えません。