処理としては, java.lang.Thread オブジェクト内の eetop フィールドの値を確認するだけ.
java.lang.Thread オブジェクトには eetop という private field があり, 対応する JavaThread オブジェクトのポインタが格納されている. スレッドが死亡すると, この eetop フィールドが NULL になる.
(なお, このフィールドへのアクセサは, java_lang_Thread::thread() と java_lang_Thread::set_thread())
(See: JavaThread::prepare(), ensure_join())
    ((cite: hotspot/src/share/vm/classfile/javaClasses.cpp))
    // Note: JDK1.1 and before had a privateInfo_offset field which was used for the
    //       platform thread structure, and a eetop offset which was used for thread
    //       local storage (and unused by the HotSpot VM). In JDK1.2 the two structures
    //       merged, so in the HotSpot VM we just use the eetop field for the thread
    //       instead of the privateInfo_offset.
    //
    // Note: The stackSize field is only present starting in 1.4.
JVM_IsThreadAlive() (= java.lang.Thread.isAlive())
-> java_lang_Thread::is_alive()
   -> java_lang_Thread::thread()
      -> oopDesc::address_field()  (java_lang_Thread::_eetop_offset を引数として呼び出す)
See: here for details
java.lang.Thread.isAlive() は JVM_IsThreadAlive() で実装されている.
    ((cite: jdk/src/share/native/java/lang/Thread.c))
    static JNINativeMethod methods[] = {
    ...
        {"isAlive",          "()Z",        (void *)&JVM_IsThreadAlive},
See: here for details
See: here for details
(#Under Construction)
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.