转:https://hunterzhao.io/post/2018/06/11/hotspot-explore-inside-java-thread-run/
整体流程
java new Thread()时,本地线程并没有创建,是在start()时才开始创建本地线程
os线程创建之后, 处于wait状态
Thread::start(native_thread)时, 会调用os线程对象的notify, 上图中会跳出while循环,触发执行run()方法。之后会记录线程的启动状态
由此可见:start()调用run()方法是jvm C++代码自动完成的, 只看java代码是看不出来这个过程的. java Thread.class代码中只有一个start0() native方法
源码查看过程,有时找不到方法声明的地方 可以使用xxx::yyyy搜索一下。C++也有继承