线程状态变迁

简介:

操作系统中线程/进程状态的变迁

screenshot

                        图一
     
新的:刚创建一个新的线程还没执行相应的start方法。
    就绪态:线程执行所需要的资源都已经满足了,就差CPU分配的时间片了
运行态:正在使用CPU时间片执行代码
等待:正在等待获取某些资源或某个事件的发生
终止:执行完程序

运行态——》就绪态:CPU分配的时间片到了,操作系统给出一个中断,对该线程进行上下文切换,使其进入就绪态。
就绪态——》运行态:拿到CPU时间,从PCB载入上次执行的信息,继续 运行程序
运行——》等待:正在运行的程序需要获取额外的资源如:锁,I/O.或某个事件的发生。
    等待——》就绪:已经获取到运行所需要的资源。

JAVA 中线程状态的变迁

screenshot图二

java 中线程状态的变迁细化了操作系统的状态的变迁。多了阻塞态,和超时等待。进入阻塞态的线程是想进入同步块。至于JVM为何要这样定义其线程的状态,我想可能是为了编程人员更好的操作线程吧。

图一:来源于《操作系统概念第七版》
图二:来源于《Java并发编程的艺术》

目录
相关文章
|
3月前
|
存储 资源调度 Java
详解Java线程的几种状态
详解Java线程的几种状态
25 0
|
4月前
|
存储 Linux Go
面试官:换人!他连进程、线程、协程这几个特点都说不出
在操作系统课程的学习中,很多人对进程线程有大体的认识,但操作系统教材更偏向于理论叙述,本文会结合 Linux 系统实现分析,更加印象深刻。
|
3月前
|
Java 调度
多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)
多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)
29 1
|
7月前
|
Java
Java线程状态
Java线程状态
32 0
|
8月前
|
Java
Java线程的几种状态
Java线程的几种状态
34 0
|
9月前
|
C#
C# 探秘如何优雅的终止线程
C# 探秘如何优雅的终止线程
66 0
|
Java 调度
关于JAVA线程五种状态的理解
关于JAVA线程五种状态的理解
159 0
关于JAVA线程五种状态的理解
|
存储 Java C++
Java线程状态详解
Java的每个线程都具有自己的状态,Thread类中成员变量threadStatus存储了线程的状态
112 0
|
Java 调度
Java线程的状态
Java线程的状态
204 0
Java线程的状态