热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_39958705
豪哥博客
6 年前
trueweixin_39958705

线程中start方法和run方法的关系及相关知识点~小记

start方法的最核心的部分是start0这个本地方法,也就是JNI方法,也就是说在 start方法中会调用 start0方法。

那么重写的那个run方法何时被调用了呢?打开JDK的官方文档,在 start方法中有如下的注释说明:
XX Causes this thread to begin execution; the Java Virtual Machine calls the
<code>run</code> method of this thread
由以上可知:run方法是被JNI方法 start0()调用的。

仔细阅读 start的源码将会总结出如下几个知识点:
口 Thread被构造后的NEW状态,事实上 threadStatus这个内部属性为0。
口不能两次启动 Thread,否则就会出现 IllegalThreadState Exception异常。
口线程启动后将会被加入到一个 ThreadGroup中。
口一个线程生命周期结束,也就是到了 TERMINATED状态,再次调用 start方法是不允许的,也就是说 TERMINATED状态是没有办法回到 RUNNABLE/RUNNING状态的。

CSDN App 扫码分享
分享
评论
1
打赏
  • 复制链接
  • 举报
下一条动态
立即登录