栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

进程调度状态梳理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

进程调度状态梳理

文章目录
  • 理论模型
    • 三态模型
    • 五态模型
    • 七态模型
  • 实际
    • Linux0.11 五态
    • Linux 七态
    • java 六态

理论模型很简单,实际应用很烦。。。查各种资料解释都不一样,留着之后验证把

理论模型 三态模型
  1. 运行(running)态:进程占有处理器正在运行。
  2. 就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。
  3. 等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。
五态模型
  1. 新建(new)态
  2. 运行态
  3. 就绪态
  4. 等待态
  5. 终止(exit)态
七态模型

引起进程挂起(suspend)概念

  1. 挂起就绪态(ready,suspend)
  2. 挂起等待态(blocked,suspend)
实际 Linux0.11 五态
#define TASK_RUNNING            0  //进程正在运行或已准备就绪。 
#define TASK_INTERRUPTIBLE      1  //进程处于可中断等待状态。 
#define TASK_UNINTERRUPTIBLE    2  //进程处于不可中断等待状态,主要用于I/O操作等待。 
#define TASK_ZOMBIE             3  //进程处于僵死状态,已经停止运行,但父进程还没发信号。
#define TASK_STOPPED            4  //进程已停止。
Linux 七态
static const char * const task_state_array[] = {
"R (running)", 
"S (sleeping)", 
"D (disk sleep)", 
"T (stopped)", 
"t (tracing stop)", 
"X (dead)", 
"Z (zombie)", 
};

与三态模型对应一下:

  • 就绪、运行
    • R运行状态
  • 阻塞态
    • S睡眠状态
    • D磁盘休眠状态
    • T停止状态
  • 退出态
    • X死亡状态
    • Z僵尸状态
  • t追踪停止状态:用于debug调试跟踪
java 六态

Java 线程的状态,有六种

Java 将五态模型中的就绪和执行,都统一成 RUNNABLE,
将阻塞(即不可能得到 CPU 运行机会的状态)细分为了 BLOCKED、WAITING、TIMED_WAITING

public enum State {
    NEW,
    RUNNABLE, //RUNNING
    BLOCKED, //抢锁失败,阻塞
    WAITING, //主动放弃锁,等待
    TIMED_WAITING, //WAITING+超时自动唤醒
    TERMINATED; //STOPPED 
}

java状态转换

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号