如果你是一个拉面店的老板,员工是cpu资源,顾客是线程
一天中午,你的拉面店人很多,总共6个后厨全都在工作,此时:
来了一名顾客,这位顾客坐在位置玩手机
1.由于这位顾客没有下单,可能正在手机上点餐,但是占用了这个位置,这就是 新建 状态。
顾客下单了一碗大碗牛肉面加荷包蛋
2.这时顾客已经下单,但是店里没有多余的后厨给它做饭,此时他就处于 就绪 态
终于有后厨忙完了其他的单子开始做这碗大碗牛肉面加荷包蛋
3.获取cpu时间后,系统分配时间片后这个流程就是 运行 态
还没给他做好,突然发现牛肉没有了,没了牛肉,准备送走的要牛肉的单子都卡住了,卡住之后后面不要牛肉的也跟着卡住了
4.由于某一步卡住导致整个流程卡住了,这就是 阻塞 态
不能就这么卡着,等牛肉准备好了后面的军少要生气了,就先把不加牛肉的送上去,要加牛肉的单子都等着吧
5.那么这些单子就进入了?等待?状态,后厨们暂时放弃它们又可以开始新的单子了
注意,等待和就绪不一样,等待是开始后暂停了,就绪是还没开始
终于牛肉也切好了,可以把放置的单子继续完成了
等待结束之后的进程会进入到就绪态,但优先级不一定比新建的就绪态高
牛肉面终于端到了顾客桌上,这时候就已经完成了?
6.进程处于完成状态或者因为意外退出都是终止状态?