thread.start()的调用关系图
具体调用的函数
// java/lang/Thread.java
public synchronized void start() {
...
start0();
...
}
// jdk/.../src/share/native/java/lang/Thread.c
static JNINativeMethod methods[] = {
{"start0", "()V", (void *)&JVM_StartThread},
...,
};
//
JVM_ENTRY(void, JVM_StartThread(JNIEnv* env, jobject jthread))
...
native_thread = new JavaThread(&thread_entry, sz);
Thread::start(native_thread);
...
JVM_END
static void thread_entry(JavaThread* thread, TRAPS) {
...
JavaCalls::call_virtual(...
vmSymbols::run_method_name(),
...);
}