Java Platform, Standard Editionトラブルシューティング・ガイド
目次      

6.3 Oracle Solaris 8スレッド・ライブラリ

Oracle Solaris 8オペレーティング・システム上のデフォルトのスレッド・ライブラリは多くの場合、T1ライブラリと呼ばれます。このスレッド・ライブラリはm:nスレッド・モデルを実装しました(m個のユーザー・スレッドがn個のカーネル・レベル・スレッド(LWP)にマップされます)。Oracle Solaris 8オペレーティング・システムには、代替の新しいスレッド・ライブラリも付属しており、/usr/lib/lwpにあります。代替スレッド・ライブラリは多くの場合、T2ライブラリと呼ばれ、Oracle Solaris 9および10オペレーティング・システムではデフォルトのスレッド・ライブラリになりました。古いリリース(特に1.4.0より前)のJ2SEでは、デフォルトのスレッド・ライブラリに関する問題(スレッド・ライブラリ内のバグ、LWPの同期化問題、LWPの枯渇など)がいくつかありました。LWPの枯渇は、RUNNABLE状態のユーザー・スレッドはあるが、使用可能なカーネル・レベル・スレッドがないというシナリオです。

前述の問題は過去のものですが、Oracle Solaris 8オペレーティング・システム上にJDKソフトウェアを配備すると、今でもデフォルトでT1ライブラリが使用されることに注意してください。JDKリリースでは「バインドされたスレッド」が使用され、ユーザー・スレッドがそれぞれ1つのカーネル・スレッドにバインドされるため、LWP枯渇タイプの問題は発生しません。しかし、スレッド・ライブラリの問題だと思われる問題(ハングアップなど)が発生した場合は、LD_LIBRARY_PATHに/usr/lib/lwpを追加することで、T2ライブラリを使用するようにHotSpot VMに指示できます。T2ライブラリが使用されているかどうかをチェックするには、pldd pidコマンドを発行して、指定したプロセスによってロードされるライブラリをリストしてください。

目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.