多线程的生命周期:
新建状态: 概括创建线程对象而没有start()
就绪状态: 线程对象调用start(启动)
运行状态:运行状态 等jvm分配cpu资源后调用 run(运行)
阻塞状态:sleep(休眠)、suspend(挂起)、join
1.等待阻塞:运行状态调用wait()方法进入等待阻塞
2.同步阻塞:运行线程获取synchronized锁失败
3.其他阻塞:通过sleep()或join()发出I/O请求时。线程就会进入到阻塞状态,当sleep状态超时,join()等待终止或者超时,或者I/O处理完毕,线程重新转入就绪状态。
终止状态 :线程任务完成时或者其他终止条件发生时,该线程就切入终止状态
线程的优先级
每个java线程都有优先级,有助与操作系统确定线程调度顺序。但是并不能保证线程执行顺序。执行顺序具有随机性,优先级高的系统会优先分配资源,概率大一些。
优先级还具有继承性 线程A里面启动线程B 那么A和B的优先级一样