0、目录
一、线程介绍
二、线程生命周期
三、进程介绍
四、进程与线程的对比
一、线程介绍
二、线程生命周期
首先看整个流程图:
具体:
1、新建状态:此时是Thread t = new Thread()之后的一个状态,这里仅仅创建了一个Thread类的对象。
2、就绪状态:线程对象创建之后,调用t.start()方法,线程进入就绪状态,等待获取CPU的使用权,因为在同一个时间里CPU只能执行某一个线程。注意,start()方法之后并没有立即执行,没有立即进入运行状态。
3、运行状态:线程进入就绪状态后,并不是立即进入运行状态,要经过系统处理,获取到CPU的使用权后才能进入到运行状态。线程进入运行状态后,并不能一直处于运行状态,当使用完系统分配的时间之后,系统就会失去CPU的使用权,进入就绪状态,再次等待获取CPU资源。
4、阻塞状态,由于IO阻塞、调用sleep(),wait(),等待同步锁等原因,线程进入阻塞状态,结束阻塞状态后直接进入就绪状态而非运行状态。
4、死亡状态:线程正常执行完成,或出现异常Exception,或出现错误Error,或调用stop()方法等后会进入死亡状态。
三、进程介绍
四、进程与线程的对比