Java多线程start()方法原理解析
run()方法只是一个类中的普通方法,调用run方法跟调用普通方法一样而start()是创建线程等一系列工作,然后自己调用run里面的任务内容。验证代码:结果:mainThread-0启动新线程检查线程状态关于threadStatus源码:通过代码可以看到就是threadStatus就是记录Thread的状态,初始线程默认为0.加入线程组调用start0()start0()方法使用c++编写的方法,这些代码在gdk代码中,所以这里不再这里探究了。通过刚刚源码分析,就知道start方法刚开始就检查线程状态,当线程创建后或结束了,该状态就不同于初始化状态就会抛出IllegalThreadStateException异常。由jvm创建的main方法线程和system组线程,并不会通过start来启动。
下载地址
用户评论