站酷网素材东莞网络营销公司
web/
2025/10/5 9:50:38/
文章来源:
站酷网素材,东莞网络营销公司,冷饮店怎么做网站,加强网站内容保密建设文章目录 前言状态图状态变化说明补充说明 前言
线程的生命周期指的是线程从创建出来到最终消亡的整个过程#xff0c;以及过程中的状态变化。
状态图
以下图用mermaid语法绘制#xff1a; #mermaid-svg-32vKT6KmFdlYvCnr {font-family:trebuchet ms,verdana,… 文章目录 前言状态图状态变化说明补充说明 前言
线程的生命周期指的是线程从创建出来到最终消亡的整个过程以及过程中的状态变化。
状态图
以下图用mermaid语法绘制 #mermaid-svg-32vKT6KmFdlYvCnr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-32vKT6KmFdlYvCnr .error-icon{fill:#552222;}#mermaid-svg-32vKT6KmFdlYvCnr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-32vKT6KmFdlYvCnr .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-32vKT6KmFdlYvCnr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-32vKT6KmFdlYvCnr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-32vKT6KmFdlYvCnr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-32vKT6KmFdlYvCnr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-32vKT6KmFdlYvCnr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-32vKT6KmFdlYvCnr .marker.cross{stroke:#333333;}#mermaid-svg-32vKT6KmFdlYvCnr svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-32vKT6KmFdlYvCnr defs #statediagram-barbEnd{fill:#333333;stroke:#333333;}#mermaid-svg-32vKT6KmFdlYvCnr g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#mermaid-svg-32vKT6KmFdlYvCnr g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#mermaid-svg-32vKT6KmFdlYvCnr g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#mermaid-svg-32vKT6KmFdlYvCnr g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-32vKT6KmFdlYvCnr g.stateGroup line{stroke:#333333;stroke-width:1;}#mermaid-svg-32vKT6KmFdlYvCnr .transition{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-32vKT6KmFdlYvCnr .stateGroup .composit{fill:white;border-bottom:1px;}#mermaid-svg-32vKT6KmFdlYvCnr .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#mermaid-svg-32vKT6KmFdlYvCnr .state-note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-32vKT6KmFdlYvCnr .state-note text{fill:black;stroke:none;font-size:10px;}#mermaid-svg-32vKT6KmFdlYvCnr .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-32vKT6KmFdlYvCnr .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#mermaid-svg-32vKT6KmFdlYvCnr .edgeLabel .label text{fill:#333;}#mermaid-svg-32vKT6KmFdlYvCnr .label div .edgeLabel{color:#333;}#mermaid-svg-32vKT6KmFdlYvCnr .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#mermaid-svg-32vKT6KmFdlYvCnr .node circle.state-start{fill:#333333;stroke:#333333;}#mermaid-svg-32vKT6KmFdlYvCnr .node .fork-join{fill:#333333;stroke:#333333;}#mermaid-svg-32vKT6KmFdlYvCnr .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#mermaid-svg-32vKT6KmFdlYvCnr .end-state-inner{fill:white;stroke-width:1.5;}#mermaid-svg-32vKT6KmFdlYvCnr .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-32vKT6KmFdlYvCnr .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-32vKT6KmFdlYvCnr #statediagram-barbEnd{fill:#333333;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-32vKT6KmFdlYvCnr .cluster-label,#mermaid-svg-32vKT6KmFdlYvCnr .nodeLabel{color:#131300;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-cluster rect.outer{rx:5px;ry:5px;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-state .divider{stroke:#9370DB;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-state .title-state{rx:5px;ry:5px;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-cluster.statediagram-cluster .inner{fill:white;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-cluster .inner{rx:0;ry:0;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-state rect.basic{rx:5px;ry:5px;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#mermaid-svg-32vKT6KmFdlYvCnr .note-edge{stroke-dasharray:5;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-note text{fill:black;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram-note .nodeLabel{color:black;}#mermaid-svg-32vKT6KmFdlYvCnr .statediagram .edgeLabel{color:red;}#mermaid-svg-32vKT6KmFdlYvCnr #dependencyStart,#mermaid-svg-32vKT6KmFdlYvCnr #dependencyEnd{fill:#333333;stroke:#333333;stroke-width:1;}#mermaid-svg-32vKT6KmFdlYvCnr :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} start() 竞争synchronized锁 Ojbect.wait() Ojbect.notify() thread.join(long) 时间到了 执行结束 new RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED 状态变化说明
java线程对象的所有状态存放在**Thread类的内部类(State)**中
初始(NEW) 新创建了一个线程对象但还没有调用start()方法 运行(RUNNABLE) Java线程中将就绪(READY) 和运行中(RUNNING) 两种状笼统的称为“可运行就绪(READY) 线程对象创建后其他线程(比如main线程调用了该对象的start()方法。该状态的线程位于可运行线程池中等待被线程调度选中并分配cpu使用权 运行中 (RUNNING) 就绪(READY)的线程获得了cpu 时间片开始执行程序代码 阻塞(BLOCKED) 表示线程被锁阻塞时的状态。例如多个线程竞争synchronized锁有1个线程得到了锁其他线程就是阻塞状态 等待(WAITING) 线程暂停运行等待其他线程唤醒之后再继续执行。进入方法例如thread.join()Ojbect.wait()LockSupport.park()方法唤醒方法例如Object.notify()或者Object.notifyAll() 定时等待(TIMED_WAITING) 该状态不同于WAITING它可以在指定的时间后自行恢复进入方法例如Thread.sleep(long)Object.wait(long)thread.join(long)LockSupport.parkNanosLockSupport.parkUntil 终止(TERMINATED) 表示该线程已经执行结束或者异常中断线程一旦终止,就不能再重启启动,否则报错(IllegalThreadStateException)
补充说明
在Thread类中过时的方法(因为存在线程安全问题,所以弃用了
void suspend()暂停当前线程void resume()恢复当前线程void stop()结束当前线程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87298.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!