进程和线程在创建到销毁的过程中,都会经历五种状态的转换。具体如下:
进程
创建:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态。
就绪:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行。
执行:进程处于就绪状态被调度后,进程进入执行状态。
阻塞:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
终止:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行
线程
新建:创建线程对象
就绪:线程对象已经启动了,但是还没有获取到cpu的执行权
运行:获取到了cpu的执行权
阻塞:没有cpu的执行权,回到就绪
死亡:代码运行完毕,线程消亡
可以看出,进程和线程的状态转换基本是一样的。