进程的基本状态及转换和阻塞及挂起的理解[通俗易懂]

进程的基本状态及转换和阻塞及挂起的理解[通俗易懂]概念描述:就绪状态:一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。执行状态:当一个进程在处理机上运行时,则称该进程处于运行状态。阻塞状态:一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时仃止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。挂起状态:由于IO的速度慢于CPU的运算速度,经常出现CPU等待…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

概念描述:

  • 就绪状态 :一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。
  • 执行状态:当一个进程在处理机上运行时,则称该进程处于运行状态。
  • 阻塞状态:一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时仃止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
  • 挂起状态:由于IO的速度慢于CPU的运算速度,经常出现CPU等待I/O的情况。这时OS需要将主存中的进程对换至外存。在进程行为模式中需要增加一个新的挂起(suspend)状态。当内存中所有进程阻塞时,OS可将一进程置为挂起态并交换到外存,再调入另一个进程执行。
  • 新建状态:进程刚创建,但还不能运行,OS还没有把它加到可执行进程组中,通常是还没有加载到主存中的新进程。
  • 退出状态:OS从可执行进程组中释放出的进程,或者是因为它自身停止了,或者是因为某种原因被取消。进程不在适合执行,但与作业相关的表和其它信息临时被OS保留起来,为其他程序提供所需信息。
  • 活跃就绪:指进程在主存并旦可被调度的状态。
  • 静止就绪:指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。
  • 活跃阻塞:指进程在主存中。一旦等待的事件产生,便进入活跃就绪状态。
  • 静止阻塞:指进程对换到辅存时的阻塞状态。一旦等待的事件产生,便进入静止就绪状态。

进程转换状态图

  • 三种基本状态转换图:

#mermaid-svg-u5pQmkv3I0cc1Tvf .label { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); fill: #333; color: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .label text { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .node rect,#mermaid-svg-u5pQmkv3I0cc1Tvf .node circle,#mermaid-svg-u5pQmkv3I0cc1Tvf .node ellipse,#mermaid-svg-u5pQmkv3I0cc1Tvf .node polygon,#mermaid-svg-u5pQmkv3I0cc1Tvf .node path { fill: #ECECFF; stroke: #9370DB; stroke-width: 1px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .node .label { text-align: center; fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .node.clickable { cursor: pointer; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .arrowheadPath { fill: #333333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edgePath .path { stroke: #333333; stroke-width: 1.5px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .flowchart-link { stroke: #333333; fill: none; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edgeLabel { background-color: #e8e8e8; text-align: center; }#mermaid-svg-u5pQmkv3I0cc1Tvf .edgeLabel rect { opacity: 0.9; }#mermaid-svg-u5pQmkv3I0cc1Tvf .edgeLabel span { color: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .cluster rect { fill: #ffffde; stroke: #aaaa33; stroke-width: 1px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .cluster text { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf div.mermaidTooltip { position: absolute; text-align: center; max-width: 200px; padding: 2px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); font-size: 12px; background: #ffffde; border: 1px solid #aaaa33; border-radius: 2px; pointer-events: none; z-index: 100; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .actor { stroke: #CCCCFF; fill: #ECECFF; }

#mermaid-svg-u5pQmkv3I0cc1Tvf text.actor > tspan { fill: black; stroke: none; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .actor-line { stroke: grey; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .messageLine0 { stroke-width: 1.5; stroke-dasharray: none; stroke: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .messageLine1 { stroke-width: 1.5; stroke-dasharray: 2, 2; stroke: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #arrowhead path { fill: #333; stroke: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .sequenceNumber { fill: white; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #sequencenumber { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #crosshead path { fill: #333; stroke: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .messageText { fill: #333; stroke: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .labelBox { stroke: #CCCCFF; fill: #ECECFF; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .labelText,#mermaid-svg-u5pQmkv3I0cc1Tvf .labelText > tspan { fill: black; stroke: none; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .loopText,#mermaid-svg-u5pQmkv3I0cc1Tvf .loopText > tspan { fill: black; stroke: none; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .loopLine { stroke-width: 2px; stroke-dasharray: 2, 2; stroke: #CCCCFF; fill: #CCCCFF; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .note { stroke: #aaaa33; fill: #fff5ad; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .noteText,#mermaid-svg-u5pQmkv3I0cc1Tvf .noteText > tspan { fill: black; stroke: none; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .activation0 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .activation1 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .activation2 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .mermaid-main-font { font-family: "trebuchet ms", verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .section { stroke: none; opacity: 0.2; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .section0 { fill: rgba(102, 102, 255, 0.49); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .section2 { fill: #fff400; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .section1,#mermaid-svg-u5pQmkv3I0cc1Tvf .section3 { fill: white; opacity: 0.2; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .sectionTitle0 { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .sectionTitle1 { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .sectionTitle2 { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .sectionTitle3 { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .sectionTitle { text-anchor: start; font-size: 11px; text-height: 14px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .grid .tick { stroke: lightgrey; opacity: 0.8; shape-rendering: crispEdges; }#mermaid-svg-u5pQmkv3I0cc1Tvf .grid .tick text { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .grid path { stroke-width: 0; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .today { fill: none; stroke: red; stroke-width: 2px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .task { stroke-width: 2; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskText { text-anchor: middle; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskText:not([font-size]) { font-size: 11px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutsideRight { fill: black; text-anchor: start; font-size: 11px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutsideLeft { fill: black; text-anchor: end; font-size: 11px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .task.clickable { cursor: pointer; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskText.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutsideLeft.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutsideRight.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskText0,#mermaid-svg-u5pQmkv3I0cc1Tvf .taskText1,#mermaid-svg-u5pQmkv3I0cc1Tvf .taskText2,#mermaid-svg-u5pQmkv3I0cc1Tvf .taskText3 { fill: white; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .task0,#mermaid-svg-u5pQmkv3I0cc1Tvf .task1,#mermaid-svg-u5pQmkv3I0cc1Tvf .task2,#mermaid-svg-u5pQmkv3I0cc1Tvf .task3 { fill: #8a90dd; stroke: #534fbc; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutside0,#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutside2 { fill: black; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutside1,#mermaid-svg-u5pQmkv3I0cc1Tvf .taskTextOutside3 { fill: black; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .active0,#mermaid-svg-u5pQmkv3I0cc1Tvf .active1,#mermaid-svg-u5pQmkv3I0cc1Tvf .active2,#mermaid-svg-u5pQmkv3I0cc1Tvf .active3 { fill: #bfc7ff; stroke: #534fbc; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .activeText0,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeText1,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeText2,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeText3 { fill: black !important; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .done0,#mermaid-svg-u5pQmkv3I0cc1Tvf .done1,#mermaid-svg-u5pQmkv3I0cc1Tvf .done2,#mermaid-svg-u5pQmkv3I0cc1Tvf .done3 { stroke: grey; fill: lightgrey; stroke-width: 2; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .doneText0,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneText1,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneText2,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneText3 { fill: black !important; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .crit0,#mermaid-svg-u5pQmkv3I0cc1Tvf .crit1,#mermaid-svg-u5pQmkv3I0cc1Tvf .crit2,#mermaid-svg-u5pQmkv3I0cc1Tvf .crit3 { stroke: #ff8888; fill: red; stroke-width: 2; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCrit0,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCrit1,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCrit2,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCrit3 { stroke: #ff8888; fill: #bfc7ff; stroke-width: 2; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCrit0,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCrit1,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCrit2,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCrit3 { stroke: #ff8888; fill: lightgrey; stroke-width: 2; cursor: pointer; shape-rendering: crispEdges; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .milestone { transform: rotate(45deg) scale(0.8, 0.8); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .milestoneText { font-style: italic; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCritText0,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCritText1,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCritText2,#mermaid-svg-u5pQmkv3I0cc1Tvf .doneCritText3 { fill: black !important; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCritText0,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCritText1,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCritText2,#mermaid-svg-u5pQmkv3I0cc1Tvf .activeCritText3 { fill: black !important; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .titleText { text-anchor: middle; font-size: 18px; fill: black; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.classGroup text { fill: #9370DB; stroke: none; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); font-size: 10px; }#mermaid-svg-u5pQmkv3I0cc1Tvf g.classGroup text .title { font-weight: bolder; }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.clickable { cursor: pointer; }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.classGroup rect { fill: #ECECFF; stroke: #9370DB; }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.classGroup line { stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .classLabel .box { stroke: none; stroke-width: 0; fill: #ECECFF; opacity: 0.5; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .classLabel .label { fill: #9370DB; font-size: 10px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .relation { stroke: #9370DB; stroke-width: 1; fill: none; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .dashed-line { stroke-dasharray: 3; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #compositionStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #compositionEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #aggregationStart { fill: #ECECFF; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #aggregationEnd { fill: #ECECFF; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #dependencyStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #dependencyEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #extensionStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #extensionEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .commit-id,#mermaid-svg-u5pQmkv3I0cc1Tvf .commit-msg,#mermaid-svg-u5pQmkv3I0cc1Tvf .branch-label { fill: lightgrey; color: lightgrey; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .pieTitleText { text-anchor: middle; font-size: 25px; fill: black; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .slice { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.stateGroup text { fill: #9370DB; stroke: none; font-size: 10px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.stateGroup text { fill: #9370DB; fill: #333; stroke: none; font-size: 10px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.statediagram-cluster .cluster-label text { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.stateGroup .state-title { font-weight: bolder; fill: black; }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.stateGroup rect { fill: #ECECFF; stroke: #9370DB; }

#mermaid-svg-u5pQmkv3I0cc1Tvf g.stateGroup line { stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .transition { stroke: #9370DB; stroke-width: 1; fill: none; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .stateGroup .composit { fill: white; border-bottom: 1px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .stateGroup .alt-composit { fill: #e0e0e0; border-bottom: 1px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .state-note { stroke: #aaaa33; fill: #fff5ad; }#mermaid-svg-u5pQmkv3I0cc1Tvf .state-note text { fill: black; stroke: none; font-size: 10px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .stateLabel .box { stroke: none; stroke-width: 0; fill: #ECECFF; opacity: 0.7; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edgeLabel text { fill: #333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .stateLabel text { fill: black; font-size: 10px; font-weight: bold; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-u5pQmkv3I0cc1Tvf .node circle.state-start { fill: black; stroke: black; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .node circle.state-end { fill: black; stroke: white; stroke-width: 1.5; }

#mermaid-svg-u5pQmkv3I0cc1Tvf #statediagram-barbEnd { fill: #9370DB; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-cluster rect { fill: #ECECFF; stroke: #9370DB; stroke-width: 1px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-cluster rect.outer { rx: 5px; ry: 5px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-state .divider { stroke: #9370DB; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-state .title-state { rx: 5px; ry: 5px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-cluster.statediagram-cluster .inner { fill: white; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-cluster.statediagram-cluster-alt .inner { fill: #e0e0e0; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-cluster .inner { rx: 0; ry: 0; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-state rect.basic { rx: 5px; ry: 5px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-state rect.divider { stroke-dasharray: 10,10; fill: #efefef; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .note-edge { stroke-dasharray: 5; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .statediagram-note rect { fill: #fff5ad; stroke: #aaaa33; stroke-width: 1px; rx: 0; ry: 0; }

:root { --mermaid-font-family: '"trebuchet ms", verdana, arial'; --mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .error-icon { fill: #552222; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .error-text { fill: #552222; stroke: #552222; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edge-thickness-normal { stroke-width: 2px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edge-thickness-thick { stroke-width: 3.5px; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edge-pattern-solid { stroke-dasharray: 0; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edge-pattern-dashed { stroke-dasharray: 3; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .edge-pattern-dotted { stroke-dasharray: 2; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .marker { fill: #333333; }

#mermaid-svg-u5pQmkv3I0cc1Tvf .marker.cross { stroke: #333333; }

:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}

就绪 执行 阻塞 进程调度 时间片用完 I/O请求 I/O完成 就绪 执行 阻塞

这里写图片描述

  • 五种基本状态转换图(单挂起):

#mermaid-svg-6oBoqCRpu8LGZq1M .label { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); fill: #333; color: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .label text { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .node rect,#mermaid-svg-6oBoqCRpu8LGZq1M .node circle,#mermaid-svg-6oBoqCRpu8LGZq1M .node ellipse,#mermaid-svg-6oBoqCRpu8LGZq1M .node polygon,#mermaid-svg-6oBoqCRpu8LGZq1M .node path { fill: #ECECFF; stroke: #9370DB; stroke-width: 1px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .node .label { text-align: center; fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .node.clickable { cursor: pointer; }

#mermaid-svg-6oBoqCRpu8LGZq1M .arrowheadPath { fill: #333333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edgePath .path { stroke: #333333; stroke-width: 1.5px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .flowchart-link { stroke: #333333; fill: none; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edgeLabel { background-color: #e8e8e8; text-align: center; }#mermaid-svg-6oBoqCRpu8LGZq1M .edgeLabel rect { opacity: 0.9; }#mermaid-svg-6oBoqCRpu8LGZq1M .edgeLabel span { color: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .cluster rect { fill: #ffffde; stroke: #aaaa33; stroke-width: 1px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .cluster text { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M div.mermaidTooltip { position: absolute; text-align: center; max-width: 200px; padding: 2px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); font-size: 12px; background: #ffffde; border: 1px solid #aaaa33; border-radius: 2px; pointer-events: none; z-index: 100; }

#mermaid-svg-6oBoqCRpu8LGZq1M .actor { stroke: #CCCCFF; fill: #ECECFF; }

#mermaid-svg-6oBoqCRpu8LGZq1M text.actor > tspan { fill: black; stroke: none; }

#mermaid-svg-6oBoqCRpu8LGZq1M .actor-line { stroke: grey; }

#mermaid-svg-6oBoqCRpu8LGZq1M .messageLine0 { stroke-width: 1.5; stroke-dasharray: none; stroke: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .messageLine1 { stroke-width: 1.5; stroke-dasharray: 2, 2; stroke: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M #arrowhead path { fill: #333; stroke: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .sequenceNumber { fill: white; }

#mermaid-svg-6oBoqCRpu8LGZq1M #sequencenumber { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M #crosshead path { fill: #333; stroke: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .messageText { fill: #333; stroke: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .labelBox { stroke: #CCCCFF; fill: #ECECFF; }

#mermaid-svg-6oBoqCRpu8LGZq1M .labelText,#mermaid-svg-6oBoqCRpu8LGZq1M .labelText > tspan { fill: black; stroke: none; }

#mermaid-svg-6oBoqCRpu8LGZq1M .loopText,#mermaid-svg-6oBoqCRpu8LGZq1M .loopText > tspan { fill: black; stroke: none; }

#mermaid-svg-6oBoqCRpu8LGZq1M .loopLine { stroke-width: 2px; stroke-dasharray: 2, 2; stroke: #CCCCFF; fill: #CCCCFF; }

#mermaid-svg-6oBoqCRpu8LGZq1M .note { stroke: #aaaa33; fill: #fff5ad; }

#mermaid-svg-6oBoqCRpu8LGZq1M .noteText,#mermaid-svg-6oBoqCRpu8LGZq1M .noteText > tspan { fill: black; stroke: none; }

#mermaid-svg-6oBoqCRpu8LGZq1M .activation0 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-6oBoqCRpu8LGZq1M .activation1 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-6oBoqCRpu8LGZq1M .activation2 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-6oBoqCRpu8LGZq1M .mermaid-main-font { font-family: "trebuchet ms", verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .section { stroke: none; opacity: 0.2; }

#mermaid-svg-6oBoqCRpu8LGZq1M .section0 { fill: rgba(102, 102, 255, 0.49); }

#mermaid-svg-6oBoqCRpu8LGZq1M .section2 { fill: #fff400; }

#mermaid-svg-6oBoqCRpu8LGZq1M .section1,#mermaid-svg-6oBoqCRpu8LGZq1M .section3 { fill: white; opacity: 0.2; }

#mermaid-svg-6oBoqCRpu8LGZq1M .sectionTitle0 { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .sectionTitle1 { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .sectionTitle2 { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .sectionTitle3 { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .sectionTitle { text-anchor: start; font-size: 11px; text-height: 14px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .grid .tick { stroke: lightgrey; opacity: 0.8; shape-rendering: crispEdges; }#mermaid-svg-6oBoqCRpu8LGZq1M .grid .tick text { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .grid path { stroke-width: 0; }

#mermaid-svg-6oBoqCRpu8LGZq1M .today { fill: none; stroke: red; stroke-width: 2px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .task { stroke-width: 2; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskText { text-anchor: middle; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskText:not([font-size]) { font-size: 11px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutsideRight { fill: black; text-anchor: start; font-size: 11px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutsideLeft { fill: black; text-anchor: end; font-size: 11px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .task.clickable { cursor: pointer; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskText.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutsideLeft.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutsideRight.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskText0,#mermaid-svg-6oBoqCRpu8LGZq1M .taskText1,#mermaid-svg-6oBoqCRpu8LGZq1M .taskText2,#mermaid-svg-6oBoqCRpu8LGZq1M .taskText3 { fill: white; }

#mermaid-svg-6oBoqCRpu8LGZq1M .task0,#mermaid-svg-6oBoqCRpu8LGZq1M .task1,#mermaid-svg-6oBoqCRpu8LGZq1M .task2,#mermaid-svg-6oBoqCRpu8LGZq1M .task3 { fill: #8a90dd; stroke: #534fbc; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutside0,#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutside2 { fill: black; }

#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutside1,#mermaid-svg-6oBoqCRpu8LGZq1M .taskTextOutside3 { fill: black; }

#mermaid-svg-6oBoqCRpu8LGZq1M .active0,#mermaid-svg-6oBoqCRpu8LGZq1M .active1,#mermaid-svg-6oBoqCRpu8LGZq1M .active2,#mermaid-svg-6oBoqCRpu8LGZq1M .active3 { fill: #bfc7ff; stroke: #534fbc; }

#mermaid-svg-6oBoqCRpu8LGZq1M .activeText0,#mermaid-svg-6oBoqCRpu8LGZq1M .activeText1,#mermaid-svg-6oBoqCRpu8LGZq1M .activeText2,#mermaid-svg-6oBoqCRpu8LGZq1M .activeText3 { fill: black !important; }

#mermaid-svg-6oBoqCRpu8LGZq1M .done0,#mermaid-svg-6oBoqCRpu8LGZq1M .done1,#mermaid-svg-6oBoqCRpu8LGZq1M .done2,#mermaid-svg-6oBoqCRpu8LGZq1M .done3 { stroke: grey; fill: lightgrey; stroke-width: 2; }

#mermaid-svg-6oBoqCRpu8LGZq1M .doneText0,#mermaid-svg-6oBoqCRpu8LGZq1M .doneText1,#mermaid-svg-6oBoqCRpu8LGZq1M .doneText2,#mermaid-svg-6oBoqCRpu8LGZq1M .doneText3 { fill: black !important; }

#mermaid-svg-6oBoqCRpu8LGZq1M .crit0,#mermaid-svg-6oBoqCRpu8LGZq1M .crit1,#mermaid-svg-6oBoqCRpu8LGZq1M .crit2,#mermaid-svg-6oBoqCRpu8LGZq1M .crit3 { stroke: #ff8888; fill: red; stroke-width: 2; }

#mermaid-svg-6oBoqCRpu8LGZq1M .activeCrit0,#mermaid-svg-6oBoqCRpu8LGZq1M .activeCrit1,#mermaid-svg-6oBoqCRpu8LGZq1M .activeCrit2,#mermaid-svg-6oBoqCRpu8LGZq1M .activeCrit3 { stroke: #ff8888; fill: #bfc7ff; stroke-width: 2; }

#mermaid-svg-6oBoqCRpu8LGZq1M .doneCrit0,#mermaid-svg-6oBoqCRpu8LGZq1M .doneCrit1,#mermaid-svg-6oBoqCRpu8LGZq1M .doneCrit2,#mermaid-svg-6oBoqCRpu8LGZq1M .doneCrit3 { stroke: #ff8888; fill: lightgrey; stroke-width: 2; cursor: pointer; shape-rendering: crispEdges; }

#mermaid-svg-6oBoqCRpu8LGZq1M .milestone { transform: rotate(45deg) scale(0.8, 0.8); }

#mermaid-svg-6oBoqCRpu8LGZq1M .milestoneText { font-style: italic; }

#mermaid-svg-6oBoqCRpu8LGZq1M .doneCritText0,#mermaid-svg-6oBoqCRpu8LGZq1M .doneCritText1,#mermaid-svg-6oBoqCRpu8LGZq1M .doneCritText2,#mermaid-svg-6oBoqCRpu8LGZq1M .doneCritText3 { fill: black !important; }

#mermaid-svg-6oBoqCRpu8LGZq1M .activeCritText0,#mermaid-svg-6oBoqCRpu8LGZq1M .activeCritText1,#mermaid-svg-6oBoqCRpu8LGZq1M .activeCritText2,#mermaid-svg-6oBoqCRpu8LGZq1M .activeCritText3 { fill: black !important; }

#mermaid-svg-6oBoqCRpu8LGZq1M .titleText { text-anchor: middle; font-size: 18px; fill: black; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M g.classGroup text { fill: #9370DB; stroke: none; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); font-size: 10px; }#mermaid-svg-6oBoqCRpu8LGZq1M g.classGroup text .title { font-weight: bolder; }

#mermaid-svg-6oBoqCRpu8LGZq1M g.clickable { cursor: pointer; }

#mermaid-svg-6oBoqCRpu8LGZq1M g.classGroup rect { fill: #ECECFF; stroke: #9370DB; }

#mermaid-svg-6oBoqCRpu8LGZq1M g.classGroup line { stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M .classLabel .box { stroke: none; stroke-width: 0; fill: #ECECFF; opacity: 0.5; }

#mermaid-svg-6oBoqCRpu8LGZq1M .classLabel .label { fill: #9370DB; font-size: 10px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .relation { stroke: #9370DB; stroke-width: 1; fill: none; }

#mermaid-svg-6oBoqCRpu8LGZq1M .dashed-line { stroke-dasharray: 3; }

#mermaid-svg-6oBoqCRpu8LGZq1M #compositionStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M #compositionEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M #aggregationStart { fill: #ECECFF; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M #aggregationEnd { fill: #ECECFF; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M #dependencyStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M #dependencyEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M #extensionStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M #extensionEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M .commit-id,#mermaid-svg-6oBoqCRpu8LGZq1M .commit-msg,#mermaid-svg-6oBoqCRpu8LGZq1M .branch-label { fill: lightgrey; color: lightgrey; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .pieTitleText { text-anchor: middle; font-size: 25px; fill: black; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .slice { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M g.stateGroup text { fill: #9370DB; stroke: none; font-size: 10px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M g.stateGroup text { fill: #9370DB; fill: #333; stroke: none; font-size: 10px; }

#mermaid-svg-6oBoqCRpu8LGZq1M g.statediagram-cluster .cluster-label text { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M g.stateGroup .state-title { font-weight: bolder; fill: black; }

#mermaid-svg-6oBoqCRpu8LGZq1M g.stateGroup rect { fill: #ECECFF; stroke: #9370DB; }

#mermaid-svg-6oBoqCRpu8LGZq1M g.stateGroup line { stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-6oBoqCRpu8LGZq1M .transition { stroke: #9370DB; stroke-width: 1; fill: none; }

#mermaid-svg-6oBoqCRpu8LGZq1M .stateGroup .composit { fill: white; border-bottom: 1px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .stateGroup .alt-composit { fill: #e0e0e0; border-bottom: 1px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .state-note { stroke: #aaaa33; fill: #fff5ad; }#mermaid-svg-6oBoqCRpu8LGZq1M .state-note text { fill: black; stroke: none; font-size: 10px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .stateLabel .box { stroke: none; stroke-width: 0; fill: #ECECFF; opacity: 0.7; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edgeLabel text { fill: #333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .stateLabel text { fill: black; font-size: 10px; font-weight: bold; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-6oBoqCRpu8LGZq1M .node circle.state-start { fill: black; stroke: black; }

#mermaid-svg-6oBoqCRpu8LGZq1M .node circle.state-end { fill: black; stroke: white; stroke-width: 1.5; }

#mermaid-svg-6oBoqCRpu8LGZq1M #statediagram-barbEnd { fill: #9370DB; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-cluster rect { fill: #ECECFF; stroke: #9370DB; stroke-width: 1px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-cluster rect.outer { rx: 5px; ry: 5px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-state .divider { stroke: #9370DB; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-state .title-state { rx: 5px; ry: 5px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-cluster.statediagram-cluster .inner { fill: white; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-cluster.statediagram-cluster-alt .inner { fill: #e0e0e0; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-cluster .inner { rx: 0; ry: 0; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-state rect.basic { rx: 5px; ry: 5px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-state rect.divider { stroke-dasharray: 10,10; fill: #efefef; }

#mermaid-svg-6oBoqCRpu8LGZq1M .note-edge { stroke-dasharray: 5; }

#mermaid-svg-6oBoqCRpu8LGZq1M .statediagram-note rect { fill: #fff5ad; stroke: #aaaa33; stroke-width: 1px; rx: 0; ry: 0; }

:root { --mermaid-font-family: '"trebuchet ms", verdana, arial'; --mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive; }

#mermaid-svg-6oBoqCRpu8LGZq1M .error-icon { fill: #552222; }

#mermaid-svg-6oBoqCRpu8LGZq1M .error-text { fill: #552222; stroke: #552222; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edge-thickness-normal { stroke-width: 2px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edge-thickness-thick { stroke-width: 3.5px; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edge-pattern-solid { stroke-dasharray: 0; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edge-pattern-dashed { stroke-dasharray: 3; }

#mermaid-svg-6oBoqCRpu8LGZq1M .edge-pattern-dotted { stroke-dasharray: 2; }

#mermaid-svg-6oBoqCRpu8LGZq1M .marker { fill: #333333; }

#mermaid-svg-6oBoqCRpu8LGZq1M .marker.cross { stroke: #333333; }

:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}

新建 就绪 执行 阻塞 挂起 退出 允许进入 分派 时间片用完(超时) 事件等待(I/O请求) 事件发生(I/O完成) 挂起 激活 释放 新建 就绪 执行 阻塞 挂起 退出

这里写图片描述

  • 五种基本状态转换图(双挂起):

#mermaid-svg-y4Xz2W1EqKEjdPHA .label { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); fill: #333; color: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .label text { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .node rect,#mermaid-svg-y4Xz2W1EqKEjdPHA .node circle,#mermaid-svg-y4Xz2W1EqKEjdPHA .node ellipse,#mermaid-svg-y4Xz2W1EqKEjdPHA .node polygon,#mermaid-svg-y4Xz2W1EqKEjdPHA .node path { fill: #ECECFF; stroke: #9370DB; stroke-width: 1px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .node .label { text-align: center; fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .node.clickable { cursor: pointer; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .arrowheadPath { fill: #333333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edgePath .path { stroke: #333333; stroke-width: 1.5px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .flowchart-link { stroke: #333333; fill: none; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edgeLabel { background-color: #e8e8e8; text-align: center; }#mermaid-svg-y4Xz2W1EqKEjdPHA .edgeLabel rect { opacity: 0.9; }#mermaid-svg-y4Xz2W1EqKEjdPHA .edgeLabel span { color: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .cluster rect { fill: #ffffde; stroke: #aaaa33; stroke-width: 1px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .cluster text { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA div.mermaidTooltip { position: absolute; text-align: center; max-width: 200px; padding: 2px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); font-size: 12px; background: #ffffde; border: 1px solid #aaaa33; border-radius: 2px; pointer-events: none; z-index: 100; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .actor { stroke: #CCCCFF; fill: #ECECFF; }

#mermaid-svg-y4Xz2W1EqKEjdPHA text.actor > tspan { fill: black; stroke: none; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .actor-line { stroke: grey; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .messageLine0 { stroke-width: 1.5; stroke-dasharray: none; stroke: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .messageLine1 { stroke-width: 1.5; stroke-dasharray: 2, 2; stroke: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #arrowhead path { fill: #333; stroke: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .sequenceNumber { fill: white; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #sequencenumber { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #crosshead path { fill: #333; stroke: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .messageText { fill: #333; stroke: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .labelBox { stroke: #CCCCFF; fill: #ECECFF; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .labelText,#mermaid-svg-y4Xz2W1EqKEjdPHA .labelText > tspan { fill: black; stroke: none; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .loopText,#mermaid-svg-y4Xz2W1EqKEjdPHA .loopText > tspan { fill: black; stroke: none; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .loopLine { stroke-width: 2px; stroke-dasharray: 2, 2; stroke: #CCCCFF; fill: #CCCCFF; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .note { stroke: #aaaa33; fill: #fff5ad; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .noteText,#mermaid-svg-y4Xz2W1EqKEjdPHA .noteText > tspan { fill: black; stroke: none; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .activation0 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .activation1 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .activation2 { fill: #f4f4f4; stroke: #666; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .mermaid-main-font { font-family: "trebuchet ms", verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .section { stroke: none; opacity: 0.2; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .section0 { fill: rgba(102, 102, 255, 0.49); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .section2 { fill: #fff400; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .section1,#mermaid-svg-y4Xz2W1EqKEjdPHA .section3 { fill: white; opacity: 0.2; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .sectionTitle0 { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .sectionTitle1 { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .sectionTitle2 { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .sectionTitle3 { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .sectionTitle { text-anchor: start; font-size: 11px; text-height: 14px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .grid .tick { stroke: lightgrey; opacity: 0.8; shape-rendering: crispEdges; }#mermaid-svg-y4Xz2W1EqKEjdPHA .grid .tick text { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .grid path { stroke-width: 0; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .today { fill: none; stroke: red; stroke-width: 2px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .task { stroke-width: 2; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskText { text-anchor: middle; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskText:not([font-size]) { font-size: 11px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutsideRight { fill: black; text-anchor: start; font-size: 11px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutsideLeft { fill: black; text-anchor: end; font-size: 11px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .task.clickable { cursor: pointer; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskText.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutsideLeft.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutsideRight.clickable { cursor: pointer; fill: #003163 !important; font-weight: bold; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskText0,#mermaid-svg-y4Xz2W1EqKEjdPHA .taskText1,#mermaid-svg-y4Xz2W1EqKEjdPHA .taskText2,#mermaid-svg-y4Xz2W1EqKEjdPHA .taskText3 { fill: white; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .task0,#mermaid-svg-y4Xz2W1EqKEjdPHA .task1,#mermaid-svg-y4Xz2W1EqKEjdPHA .task2,#mermaid-svg-y4Xz2W1EqKEjdPHA .task3 { fill: #8a90dd; stroke: #534fbc; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutside0,#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutside2 { fill: black; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutside1,#mermaid-svg-y4Xz2W1EqKEjdPHA .taskTextOutside3 { fill: black; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .active0,#mermaid-svg-y4Xz2W1EqKEjdPHA .active1,#mermaid-svg-y4Xz2W1EqKEjdPHA .active2,#mermaid-svg-y4Xz2W1EqKEjdPHA .active3 { fill: #bfc7ff; stroke: #534fbc; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .activeText0,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeText1,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeText2,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeText3 { fill: black !important; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .done0,#mermaid-svg-y4Xz2W1EqKEjdPHA .done1,#mermaid-svg-y4Xz2W1EqKEjdPHA .done2,#mermaid-svg-y4Xz2W1EqKEjdPHA .done3 { stroke: grey; fill: lightgrey; stroke-width: 2; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .doneText0,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneText1,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneText2,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneText3 { fill: black !important; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .crit0,#mermaid-svg-y4Xz2W1EqKEjdPHA .crit1,#mermaid-svg-y4Xz2W1EqKEjdPHA .crit2,#mermaid-svg-y4Xz2W1EqKEjdPHA .crit3 { stroke: #ff8888; fill: red; stroke-width: 2; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCrit0,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCrit1,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCrit2,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCrit3 { stroke: #ff8888; fill: #bfc7ff; stroke-width: 2; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCrit0,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCrit1,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCrit2,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCrit3 { stroke: #ff8888; fill: lightgrey; stroke-width: 2; cursor: pointer; shape-rendering: crispEdges; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .milestone { transform: rotate(45deg) scale(0.8, 0.8); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .milestoneText { font-style: italic; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCritText0,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCritText1,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCritText2,#mermaid-svg-y4Xz2W1EqKEjdPHA .doneCritText3 { fill: black !important; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCritText0,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCritText1,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCritText2,#mermaid-svg-y4Xz2W1EqKEjdPHA .activeCritText3 { fill: black !important; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .titleText { text-anchor: middle; font-size: 18px; fill: black; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.classGroup text { fill: #9370DB; stroke: none; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); font-size: 10px; }#mermaid-svg-y4Xz2W1EqKEjdPHA g.classGroup text .title { font-weight: bolder; }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.clickable { cursor: pointer; }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.classGroup rect { fill: #ECECFF; stroke: #9370DB; }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.classGroup line { stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .classLabel .box { stroke: none; stroke-width: 0; fill: #ECECFF; opacity: 0.5; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .classLabel .label { fill: #9370DB; font-size: 10px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .relation { stroke: #9370DB; stroke-width: 1; fill: none; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .dashed-line { stroke-dasharray: 3; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #compositionStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #compositionEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #aggregationStart { fill: #ECECFF; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #aggregationEnd { fill: #ECECFF; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #dependencyStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #dependencyEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #extensionStart { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #extensionEnd { fill: #9370DB; stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .commit-id,#mermaid-svg-y4Xz2W1EqKEjdPHA .commit-msg,#mermaid-svg-y4Xz2W1EqKEjdPHA .branch-label { fill: lightgrey; color: lightgrey; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .pieTitleText { text-anchor: middle; font-size: 25px; fill: black; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .slice { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.stateGroup text { fill: #9370DB; stroke: none; font-size: 10px; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.stateGroup text { fill: #9370DB; fill: #333; stroke: none; font-size: 10px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.statediagram-cluster .cluster-label text { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.stateGroup .state-title { font-weight: bolder; fill: black; }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.stateGroup rect { fill: #ECECFF; stroke: #9370DB; }

#mermaid-svg-y4Xz2W1EqKEjdPHA g.stateGroup line { stroke: #9370DB; stroke-width: 1; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .transition { stroke: #9370DB; stroke-width: 1; fill: none; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .stateGroup .composit { fill: white; border-bottom: 1px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .stateGroup .alt-composit { fill: #e0e0e0; border-bottom: 1px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .state-note { stroke: #aaaa33; fill: #fff5ad; }#mermaid-svg-y4Xz2W1EqKEjdPHA .state-note text { fill: black; stroke: none; font-size: 10px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .stateLabel .box { stroke: none; stroke-width: 0; fill: #ECECFF; opacity: 0.7; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edgeLabel text { fill: #333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .stateLabel text { fill: black; font-size: 10px; font-weight: bold; font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); }

#mermaid-svg-y4Xz2W1EqKEjdPHA .node circle.state-start { fill: black; stroke: black; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .node circle.state-end { fill: black; stroke: white; stroke-width: 1.5; }

#mermaid-svg-y4Xz2W1EqKEjdPHA #statediagram-barbEnd { fill: #9370DB; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-cluster rect { fill: #ECECFF; stroke: #9370DB; stroke-width: 1px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-cluster rect.outer { rx: 5px; ry: 5px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-state .divider { stroke: #9370DB; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-state .title-state { rx: 5px; ry: 5px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-cluster.statediagram-cluster .inner { fill: white; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-cluster.statediagram-cluster-alt .inner { fill: #e0e0e0; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-cluster .inner { rx: 0; ry: 0; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-state rect.basic { rx: 5px; ry: 5px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-state rect.divider { stroke-dasharray: 10,10; fill: #efefef; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .note-edge { stroke-dasharray: 5; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .statediagram-note rect { fill: #fff5ad; stroke: #aaaa33; stroke-width: 1px; rx: 0; ry: 0; }

:root { --mermaid-font-family: '"trebuchet ms", verdana, arial'; --mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .error-icon { fill: #552222; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .error-text { fill: #552222; stroke: #552222; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edge-thickness-normal { stroke-width: 2px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edge-thickness-thick { stroke-width: 3.5px; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edge-pattern-solid { stroke-dasharray: 0; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edge-pattern-dashed { stroke-dasharray: 3; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .edge-pattern-dotted { stroke-dasharray: 2; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .marker { fill: #333333; }

#mermaid-svg-y4Xz2W1EqKEjdPHA .marker.cross { stroke: #333333; }

:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}

新建 活跃就绪 静止就绪 执行 活跃阻塞 静止阻塞 退出 允许进入 允许进入 挂起 激活 分派 时间片用完(超时) 事件等待(I/O请求) 挂起 事件发生(I/O完成) 挂起 激活 事件发生(I/O完成) 释放 新建 活跃就绪 静止就绪 执行 活跃阻塞 静止阻塞 退出

这里写图片描述

阻塞及挂起的理解

  1. 挂起是一种主动行为,是把一个进程从内存转到外存,而阻塞则是一种被动行为(并不绝对,看个人理解),是在等待事件或资源时任务的表现。对于挂起,其进程所有资源都转入外存;而阻塞,其进程所有资源依然保存在内存中
  2. 对应挂起的行为是激活,即当没有活动就绪进程时或静止就绪队列里面有进程优先级高于活动就绪里面所有进程,还有就是当一个进程释放足够内存时,系统会把一个高优先级阻塞激活。而阻塞却没有对应的主动行为来解除,需要其他进程或系统唤醒。
  3. 一个比喻:只有一个锅,当食材已经准备充分的菜就可以下锅,这就是执行态;而其他准备好的菜就顺序放在一旁,等待下锅,这就是就绪态;还有的菜准备还不是很充分,例如该切片的菜还没有切片,还有一些佐料还没有从冰箱里拿出,这就是I/O操作等待,类似阻塞态;而还有一种情况就是厨房的面积太小了,桌子上放不下那么多的准备下锅的菜,于是先将那些还没有准备好的菜放入冰箱,如果还是放不了那么多菜,就把那些已经准备好的但没有下锅的菜放入冰箱,以免变质,这就是挂起态;当桌子上有位置了,就把菜从冰箱拿出来,这便是激活操作。做好的菜就可以端出厨房,这便是退出态。(PS:这里我假设冰箱空间很大,也存在那种炒到一半的菜放到一边的情况,即从执行态到就绪态或阻塞态的情况,这种情况可以类似川菜中先将肉处理一下(去腥等等),然后又从锅里捞出来,用豆瓣和其他佐料来进行腌制(这里如果佐料没有在桌子上就类似进入阻塞态,而如果有就相当于进入就绪态,但是锅里已经被占用了,需要等待一会儿)至于优先级的高低,也可类比有些菜是为了其他菜做铺垫(举个例子:在川菜里面,回锅肉和炒白菜,一般家庭会优先做回锅肉,因为当做回锅肉时,会炒出许多猪油,而这些有可以用来炒白菜,这样的炒白菜不仅好吃,而且也节约了许多油。))
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210037.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 字典序输出_按姓名字典序排序

    字典序输出_按姓名字典序排序这一类的题目在面试中的算法是比较常见的,这里也自己做一个总结1.输入一个数字n,输出从1~n组成的数字的全排列,每个排列占一行,输出按照数值升序排列https://blog.csdn.net/desirepath/article/details/50447712从数组的末尾开始,首先找到第一个升序的数字对,然后交换这个数字对,然后从这个数字对开始,按照生序交换后面的所有数字。2…将1~…

    2025年7月5日
    4
  • matlab创建控件失败win7,Win7系统无法安装ActiveX控件的解决方法

    matlab创建控件失败win7,Win7系统无法安装ActiveX控件的解决方法Win7系统无法安装ActiveX控件怎么办?ActiveX控件是网站常用的一款网页辅助工具,有时候我们可能需要安装它,但是却发现浏览器阻止了它安装,那么当你遇到这种情况该怎么办呢?下面小编就给大家带来Win7系统无法安装ActiveX控件的解决方法,一起来看看吧!以下从多种角度出发分析,并非仅仅针对截图所示及以上提示。方法/步骤:1、首先建议将相应网站加入可信站点。2、其次建议选中可信站点。自定…

    2022年5月14日
    52
  • qt操作json(QT 教程)

    以故事方式来学习如何使用Qt接口来操作JSON数据。

    2022年4月17日
    42
  • java商城_国内三款知名java商城系统:shop++、shopnc、javashop浅析

    java商城_国内三款知名java商城系统:shop++、shopnc、javashop浅析在众多商家决定搭建一个独立的网上商城系统时,就开始苦恼,市面上这么多商城系统到底该选哪一个才好呢?我们又如何选到靠谱又实用的商城系统呢?国内三款知名java商城系统最近我也在了解商城系统的应用程序,市面上的商城系统颇为混杂,以下是本人针对国内三款知名java商城系统的(shop++、shopnc、javashop)分析,排名不分先后。SHOP++关注SHOP++有些时间了,从中体验了他们的6.0版…

    2022年7月8日
    19
  • navcat15的永久激活码【在线注册码/序列号/破解码】

    navcat15的永久激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    72
  • SPSS 性别卡方分析[通俗易懂]

    SPSS 性别卡方分析[通俗易懂]1.新建数据集2.打开变量视图,分别输出group、sex和number其中标签是对数据的说明,值是spss中的显示,比如定义1=subject,则输入1就等价于subject变量视图:数据视图:3.数据分析:点击数据–个案加权–将人数加入个案加权系数否则结果一般有误4.卡方检验分析–描述统计–交叉表–统计–卡方检验确定结果输出:…

    2022年5月16日
    97

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号