Android开发Android开发经验谈

19 进程状态的切换

2020-10-25  本文已影响0人  凤邪摩羯

进程状态转换,同样可用于线程的状态转移

一、进程状态

进程的生命周期内,有5种状态,分别为new, runnable, running, blocked, dead共5种状态,进程所处的状态,会随着系统负载以及运行环境的变化而不断发生改变(由一个状态切换到另一个状态)。

process_status

二、状态转移

process_status
  1. Runnable -> Running: 就绪态的进程获得了CPU的时间片,进入运行态;
  2. Running -> Runnable: 运行态的进程在时间片用完后,必须出让CPU,进入就绪态;
  3. Running -> Blocked: 当进程请求资源的使用权(如外设)或等待事件发生(如I/O完成)时,由运行态转换为阻塞态;
  4. Blocked -> Runnable: 当进程已经获取所需资源的使用权或者等待事件已完成时,中断处理程序必须把相应进程的状态由阻塞态转为就绪态;

三、小结

进程的状态转移,主要围绕Runnable、Running、Blocked三个状态。Runnable与Running之间的转换,更多的是与调度器Scheduler相关,而Blocked状态主要涉及资源的使用权问题。

上一篇 下一篇

猜你喜欢

热点阅读