新生成的thread能start多次吗?

不能,是由其线程状态决定的。线程的生命周期管理依托于虚拟机与操作系统,其生命周期的各个状态图转换如下:

wKioL1jEssbhHMMFAAO2P78_i50775.jpg-wh_50

从图中可以看出,线程初始化之后,运行一次start方法后,该线程进入RUNNBALE状态,等待分配时间片运行,如果再调用start方法,由于状态已经不是初始化状态了,所以导致虚拟机报错。源码如下:

wKiom1jEtEDAwd1YAAC2yjQ8ntU569.jpg-wh_50

说明,只有刚初始化的才能调用run,否则抛出异常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章