Up Top

Runtime による Thread の一時停止処理 (VM Operation)


概要(Summary)

VM Operation は, 専用のスレッド ("VMThread") によって実行される.

VM Operation処理は, VMThread::execute() メソッドによって VM Operation 要求が VMThread に通知されることで開始される. 処理の流れは以下のようになる.

  1. 要求を出される VMThread 自身は, HotSpot の起動時に作成された後, 要求が来るまで無限ループで待機している.

  2. VMThread::execute() が呼び出されると, VMThread::vm_queue という VMOperationQueue に VM Operation 要求が追加される. さらに VMOperationQueuelock に notify() が通知される.

この notify() によって待機していた VMThread が起床し, VMThread::vm_queue から VM Operation オブジェクトを取得し, VMThread::evaluateoperation() で VM Operation を実行する.

Subcategories


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