HotSpot 内には, スレッドの待機処理(スレッドをブロックさせる処理)の枠組みとして, 以下の 4種類が用意されている.
最もプリミティブな要素.
OS レベルでのスケジューリング制御(pthread_cond_wait(), WaitForSingleObject(), 等)を隠蔽するレイヤー.
ParkEvent を用いて構築されたシンプルなスピンロック, 及び Mutex 実装.
これらは, ごく短い critical section に対してのみ使われることになっている.
ParkEvent 及び SpinLock, Mux を用いて構築された Mutex 及びモニタ実装.
長い critical section にも使用可能.
非常に簡単な critical section に対してのみ使用される Mutex 実装.
HotSpot の初期化作業のかなり早い段階でも使われるため, ParkEvent (os::PlatformEvent) は使用せず独自の排他処理を行っている.
なお, 他の待機処理用のクラスに比べて使用箇所は少ない.
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.