これらは, 同期排他処理 (monitorenter/monitorexit 命令, synchronized 修飾子) のためのクラス. より具体的に言うと, 同期排他処理を高速化する Biased Locking 機能のためのクラス (See: here and here for details).
Biased Locking 機能に関する処理を納めた名前空間(AllStatic クラス). 特に, Biased Locking 機能の初期化処理と slow-path 処理が納められている (See: here and here for details).
(なお, fast-path の処理はアセンブリで組まれたルーチンが使われるので, ここにはない)
((cite: hotspot/src/share/vm/runtime/biasedLocking.hpp))
class BiasedLocking : AllStatic {
See: here for details
BiasedLocking クラス内で使用される補助クラス(VM_Operationクラス).
Biased Locking 機能の初期化を行う.
((cite: hotspot/src/share/vm/runtime/biasedLocking.cpp))
class VM_EnableBiasedLocking: public VM_Operation {
以下の箇所で(のみ)使用されている.
See: here for details
BiasedLocking クラス内で使用される補助クラス.
Biased Locking 機能の初期化を行うための PeriodicTask クラス. HotSpot の起動から BiasedLockingStartupDelay ミリ秒経過した時点で Biased Locking 機能の初期化を実行する.
(なお, このクラスは BiasedLockingStartupDelay オプションが 0 より大きい場合にのみ使用される. (See: BiasedLocking::init()))
((cite: hotspot/src/share/vm/runtime/biasedLocking.cpp))
// One-shot PeriodicTask subclass for enabling biased locking
class EnableBiasedLockingTask : public PeriodicTask {
BiasedLocking::init() 内で(のみ)生成されている.
実際の処理は VM_EnableBiasedLocking に丸投げしている.
See: here for details
BiasedLocking クラス内で使用される補助クラス(VM_Operationクラス).
他スレッドに Biased されているオブジェクトに対し, Safepoint 停止を使って安全に Bias を解除する(= revoke する).
((cite: hotspot/src/share/vm/runtime/biasedLocking.cpp))
class VM_RevokeBias : public VM_Operation {
以下の箇所で(のみ)使用されている.
See: here for details
BiasedLocking クラス内で使用される補助クラス(VM_Operationクラス).
Bulk Rebias 処理, 及び Bulk Revoke 処理を行う.
((cite: hotspot/src/share/vm/runtime/biasedLocking.cpp))
class VM_BulkRevokeBias : public VM_RevokeBias {
BiasedLocking::revoke_and_rebias() 内で(のみ)使用されている.
See: here for details
トラブルシューティング用/デバッグ用(開発時用)のクラス (関連する diagnostic オプションまたは notproduct オプションが指定されている場合にのみ使用される) (See: PrintBiasedLockingStatistics, PrintPreciseBiasedLockingStatistics, PrintLockStatistics).
Biased Locking 機能に関するプロファイル情報を溜めていくためのクラス.
((cite: hotspot/src/share/vm/runtime/biasedLocking.hpp))
// Biased locking counters
class BiasedLockingCounters VALUE_OBJ_CLASS_SPEC {
以下の箇所に(のみ)格納されている.
(BiasedLocking クラスの _counters フィールドは, ポインタ型ではなく実体なので, 初期段階で自動的に生成される)
(BiasedLockingNamedCounter クラスの _counters フィールドは, ポインタ型ではなく実体なので, BiasedLockingNamedCounter オブジェクトの生成時に一緒に生成される)
以下の箇所で(のみ)出力されている.
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.