java线程 - Java 新建线程
本文介绍了java线程 - Java 新建线程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
Thread子类重写run()方法,为什么不需要super.run()?这样调用start()为何能创建新线程?
解决方案
在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线程 - Java 新建线程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文