java.lang.Thread.start() の処理(#Under Construction)
java.lang.Thread.start()
-> java.lang.ThreadGroup.add()
-> java.lang.ThreadGroup.start0()
-> JVM_StartThread()
-> (1) 新しい JavaThread オブジェクトを生成する
-> JavaThread::JavaThread() (<= なお, エントリポイントとしては thread_entry() 関数が指定されている)
-> Thread::Thread()
-> JavaThread::initialize()
-> JavaThread::set_entry_point()
-> os::create_thread()
-> (See: here for details)
(1) 生成した JavaThread オブジェクトを初期化する
-> JavaThread::prepare()
-> JavaThread::set_thread()
-> java_lang_Thread::set_thread()
-> Thread::set_priority()
-> Threads::add()
(1) 生成した JavaThread の実行を開始させる.
-> Thread::start()
-> java_lang_Thread::set_thread_status()
-> os::start_thread()
-> (See: here for details)
(なお, java.lang.ThreadGroup.start0() での生成に失敗した場合は以下の関数が呼ばれる)
-> java.lang.ThreadGroup.threadStartFailed()
-> java.lang.ThreadGroup.remove()
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
(#Under Construction)
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
(#Under Construction)
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.