Up Top

Runtime による Thread の一時停止処理 : VMThread の生成処理


概要(Summary)

VMThread は, HotSpot の初期化時に Threads::create_vm() の中で生成される.

VMThread の作成は os::create_thread() 及び os::start_thread() で行われる. このため, 生成された VMThread スレッドは java_start() から実行が開始される (See: here for details).

java_start() から始まるスレッドの起動処理では最終的に Thread::run() が呼び出される (See: here for details). VMThread は Thread::run() をオーバーライドしているので, 実際に呼び出されるのは VMThread::run() になる. この VMThread::run() の中で実際の VM Operation の管理処理が行われる (See: here for details).

処理の流れ (概要)(Execution Flows : Summary)

VMThread を作成する処理

(HotSpot の起動時処理) (See: here for details)
-> Threads::create_vm()
   -> VMThread::create()
      -> VMThread::VMThread()
         -> NamedThread::NamedThread()
            -> Thread::Thread()
      -> VMOperationQueue::VMOperationQueue()
   -> os::create_thread()
      -> (See: here for details)
   -> os::start_thread()
      -> (See: here for details)

生成された VMThread 側の処理

-> java_start()
   -> (See: here, here and here for details)
      -> VMThread::run()
         -> (See: here for details)

処理の流れ (詳細)(Execution Flows : Details)

VMThread::create()

See: here for details

VMThread::VMThread()

See: here for details

NamedThread::NamedThread()

See: here for details

Thread::Thread()

See: here for details

VMOperationQueue::VMOperationQueue()

See: here for details


This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.