HotSpot 内で使われる多くの Thread クラスでは, 共通の開始処理が使われている.
この開始処理は, 大きく分けると以下の 2つからなる.
スレッドは Thread クラスのサブクラスとして表現されている.
まず適切な Thread サブクラスのオブジェクトが生成される.
os::create_thread() を呼び出すと, 実際にスレッドの生成が行われる.
生成直後のスレッドは実行が停止されている.
os::start_thread() を呼ぶことで, 実際に実行が開始される.
実行が開始されると java_start() 関数から処理が始まる.
java_start() からは最終的に Thread::run() が呼び出される.
(なお, java_start() は各 OS 毎に実装されている. ただし, どの場合でも最終的には Thread::run() に行き着く)
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.