线程的五个状态:
1、新建状态(New): 线程对象被创建之后,就进入新建状态。 Thread thread = new Thread();
2、就绪状态(Runnable):线程对象被创建之后,其他线程调用了该对象的start()方法,从而来启动该进程。 thread.start(); 处于就绪态的线程,随即可能被CPU调度执行
3、运行状态(Running):线程获取CPU权限进行执行。线程只能从就绪态进入运行状态
4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU的使用权,暂时停止运行。直到线程再次进入就绪态,才有机会转到运行状态。阻塞的情况有:
(1)等待阻塞。通过调用线程的wait()方法,让线程等待某工作的完成
(2)同步阻塞。线程在获取synchronized同步锁失败时,会进入同步阻塞状态
(3)其他阻塞。通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕后,线程重新转入就绪态
5、死亡状态(Dead):线程执行完毕或者因异常退出了run()方法,该线程结束生命周期
Object类,定义了wait(),notify(),notifyAll()等休眠/唤醒函数
Thread类,定义了一系列的线程操作函数,如sleep()休眠函数,interrupt()中断函数,getName()获取线程名称等
synchronized关键字,区分为synchronized代码块和synchronized方法。它的作用是让线程获取对象的同步锁。
方法,该线程结束生命周期
[Fāngfǎ, gāi xiànchéng jiéshù shēngmìng zhōuqí]
Method, the thread end of the life cycle