Java 新建线程
Thread子类重写run()方法,为什么不需要super.run()?这样调用start()为何能创建新线程?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Thread子类重写run()方法,为什么不需要super.run()?这样调用start()为何能创建新线程?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
在java源码中
这个
target
就是new Thread(Runnable)
中传进去的Runnable
这个
run
本来就是 用来实现被你重写的,来实现你要运行的东西的当你用
new Thread(Runnable)
的时候,就会自动调用target
的run
所以 当你用继承的方式来新建线程类,原来的
run
也没有必要被运行至于start 在内部的的话,会调用一个
start0
的native 函数,这个函数就是由jvm系统底层来实现了目测就是扔给c/c++ 创建一个线程,并运行
所以一调用
start
,就会由jvm的代码来帮你创建,运行程序有兴趣研究,可以看看java的源码