在java源码中 public void run(){ if (target != null) { taeget.run(); } } 这个target就是new Thread(Runnable)中传进去的Runnable 这个run本来就是 用来实现被你重写的,来实现你要运行的东西的 当你用new Thread(Runnable)的时候,就会自动调用target 的run 所以 当你用继承的方式来新建线程类,原来的run也没有必要被运行 至于start 在内部的的话,会调用一个start0 的native 函数,这个函数就是由jvm系统底层来实现了 目测就是扔给c/c++ 创建一个线程,并运行 所以一调用start,就会由jvm的代码来帮你创建,运行程序 有兴趣研究,可以看看java的源码
在java源码中
这个
target
就是new Thread(Runnable)
中传进去的Runnable
这个
run
本来就是 用来实现被你重写的,来实现你要运行的东西的当你用
new Thread(Runnable)
的时候,就会自动调用target
的run
所以 当你用继承的方式来新建线程类,原来的
run
也没有必要被运行至于start 在内部的的话,会调用一个
start0
的native 函数,这个函数就是由jvm系统底层来实现了目测就是扔给c/c++ 创建一个线程,并运行
所以一调用
start
,就会由jvm的代码来帮你创建,运行程序有兴趣研究,可以看看java的源码