java线程的几种状态

更新时间:2023-09-06 06:50:38 阅读: 评论:0

java线程的几种状态

java线程的几种状态

java线程的几种状态

导语:线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。下面是Java线程的介绍,欢迎参考!

java线程的几种状态1

新建:new一个Thread对象或者其子类对象就是创建一个线程,当一个线程对象被创建,但是没有开启,这个时候,

只是对象线程对象开辟了内存空间和初始化数据。

就绪:新建的对象调用start方法,就开启了线程,线程就到了就绪状态。

在这个状态的线程对象,具有执行资格,没有执行权。

运行:当线程对象获取到了CPU的资源。

在这个状态的线程对象,既有执行资格,也有执行权。

冻结:运行过程中的线程由于某些原因(比如wait,sleep),释放了执行资格和执行权。

当然,他们可以回到运行状态。只不过,不是直接回到。

而是先回到就绪状态。

死亡:当线程对象调用的run方法结束,或者直接调用stop方法,就让线程对象死亡,在内存中变成了垃圾。

java线程的几种状态2

先说结论:

Java线程中一共有6种状态,分别为:NEW、RUNNABLE、WAITING、TIMED_WAITING、BLOCKED、TERMINATED,其中RUNNABLE包含READY和RUNNING状态,详情可见下***:  

NEW:new一个Thread对象,但没有调用start方法前,线程处于初始状态

RUNNABLE:在Java中包括两种状态,RUNNING和READY

READY:就绪态,该状态下的线程已经获得执行所需的所有资源,只要CPU分配执行权就能运行;所有就绪态的线程存放在就绪队列中

RUNNING:获得cpu时间片,正在执行的'线程;由于每个cpu同一时刻只能执行一条线程,因此每个cpu每个时刻只有一条线程运行。

BLOCKED:阻塞态,当线程请求锁失败时,就会进入阻塞态,一旦请求成功就会进入就绪队列等待cpu调度;所有阻塞态的线程存放在阻塞队列中

WAITING:等待态,当运行中的线程调用wait、join、park函数时,当前线程进入等待态;所有等待线程放入等待队列;等待状态的线程需要被其他线程唤醒才能继续运行;进入等待状态会释放cpu时间片,以及资源(一般指锁)

TIMED_WAITING:超时等待态,当运行中的线程调用sleep(time)、wait(time)、parkNanos、parkUtil时会进入超时等待态;和等待态的区别就是,超时之后会加入到阻塞队列中去。

本文发布于:2023-07-29 03:43:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1693954238724166.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:java线程的几种状态.doc

本文 PDF 下载地址:java线程的几种状态.pdf

标签:几种   线程   状态   java
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图