线程生命周期
说明线程工共包含5个状态:
新建状态new:调用线程构造方法创建线程后,线程进入新建状态;
就绪状态runnable:其他线程调start()方法,启动该线程。只有进入就绪状态的线程,才能被cpu调度执行
执行状态running:当线程获取cup权限进行执行
阻塞状态bocked:当线程因为某些原因放弃cpu使用权限,暂时停止运行;阻塞情况分为三种:
1)等待阻塞:当调用对象的wait的方法,让线程等待某项工作完成
2)同步阻塞:当通过synchronized获取同步锁失败(因为同步锁被其他线程占有),进入同步阻塞23
3)其他原因阻塞:当调用线程的sleep()或join()或发出io请求,线程进入阻塞状态;当sleep超时,join等待线程中止或io请求完成线程重新进入就绪状态
死亡状态dead:当线程执行完毕或run方法有异常产生。
该5总状态涉及的内容包括Obejct类,Thread类,synchronized关键字
Obejct类:定义了wait,notify,notifyall等休眠/唤醒函数
Thread类:定义了一系列操作线程的方法;sleep,join等
synchronized关键字:它区分synchronized代码块和synchronized方法;synchronized用于获取对象同步锁