线程的生命周期
注释:前面两片文章讲述了如何创建一个线程和如何安全的中止一个Java线程,这一片文章,来说说线程的生命 周期
在开始解释生命周期之前,大家先思考一个问题,就是是否调用了start()方法就代表线程开始执行了吗?
下面我们来看一副线程的运行原理图
yield() —》 是让当前线程让出CPU时间,不代表当前进入休眠状态,当前这个线程依旧有可能 被选中执行
线程的优先级:CPU会优先执行优先级高的线程,因为
setPriority() 在不同操作系统里面存在很大差异性,所以大家应该通过其他的手段保证线程的优先执行;
守护线程:其实一种支持性线程,一般是用来程序后台的调度工作,例如java的垃圾回收机制,setDaemon(true)可以让当前线程成为守护线程,必须要在调用start()方法之前,守护线程不会执行finally代码块的内容
普通运行代码一定会执行finally代码块中的内容