特に指定しなければ Solaris のスレッドは、非結合スレッドを実行するためのシステム実行リソース (LWP) の数を実行可能なスレッドの数と同じになるように調整します。この調整は完全なものではありませんが、少なくともプロセスの処理が進行することは保証されます。
同時に実行可能にすべき (コードやシステムコールを実行する) 非結合スレッドの数がわかっている場合は、thr_setconcurrency(3T) によって、その値をスレッドライブラリに指示してください。
例
ユーザごとにスレッドが必要なデータベースサーバでは、同時にアクセスするユーザ数をスレッド並行度として指定します。
クライアントごとにスレッドが必要なウィンドウサーバでは、同時に実行されるクライアント数をスレッド並行度として指定します。
各スレッドの生成時に THR_NEW_LWP フラグを指定して、並行度を 1 つ増やす方法もあります。
スレッドの並行度を計算するときは、プロセス間 (USYNC_PROCESS) 同期変数でブロックされている非同期スレッドも、実行可能なスレッドとして数えてください。結合スレッドは LWP と等価で、Solaris スレッドの並行度のサポートを必要としないので、実行可能なスレッドには数えません。