线程的生命周期是:创建(生成)——就绪状态——运行状态——阻塞状态——终止/死亡状态;
- 创建新线程的方法:在java中如果要创建线程的话,一般有两种方式:1)继承Thread类;2)实现Runnable接口。
- 创建线程并new出线程实例之后的“实例对象.start()”,当前线程转入就绪状态;
- 就绪状态转运行状态:进入就绪状态的线程,在等待CPU的资源分配,在获取到CPU分配的资源时,线程转入运行状态;
- 在线程运行期间,如执行了耗时的IO操作时,wait( ),sleep()、suspend()等方法时,线程失去所占用资源,该线程就从运行状态进入阻塞状态。进入阻塞状态的线程,在处理完造成阻塞的事件之后,线程不是直接再运行,而是返回就绪状态,重新排队等待CPU资源的再分配。
- 线程正常执行完run()函数后,该线程就结束了。如果在线程执行的过程中捕获到错误如:Exception、error,程序抛出异常,线程死亡。