Up Top
HotSpot の起動/終了処理 : HotSpot の終了処理の流れ
概要(Summary)
HotSpot の終了には以下の 2種類がある.
- 正常にメインクラスが終わって終了する場合
- java.lang.System.exit() 等が呼び出されて異常終了する場合
しかし, どちらの場合も以下の処理を終了前にやらなければいけない模様.
- shutdown_hook の呼び出し処理 (<= JVM 仕様の要請)
- before_exit() や VM_Exit operation の実行 (<= こちらは HotSpot の実装上の都合)
それぞれ以下のようにこの処理を実行している.
- 正常終了の場合には, jni_DestroyJavaVM() から呼んだ Threads::destroy_vm() で上記の処理が行われている.
- java.lang.System.exit() が呼ばれた場合は, Java の Shutdown オブジェクトのメソッド経由で上記の処理が行われている.
Subcategories
This document is available under the
GNU GENERAL PUBLIC LICENSE Version 2.