java有哪几种线程状态(JAVA线程状态)

网友投稿 344 2023-02-04


本篇文章给大家谈谈java有哪几种线程状态,以及JAVA线程状态对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享java有哪几种线程状态的知识,其中也会对JAVA线程状态进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA中,线程有哪五个基本状态?他们之间如何让转化?并简述线程周期。

java中java有哪几种线程状态,每个线程都需经历新生、就绪、运行、阻塞和死亡五种状态,线程从新生到死亡的状态变化称为生命周期。
用new运算符和Thread类或其子类建立一个线程对象后,该线程就处于新生状态。


线程的生命周期,把图转化为文字就是java有哪几种线程状态: 

1、线程通过new方法创建,调用start,线程进入就绪状态,等待系统的调度(时间片轮转调度)。当系统调度,进入运行状态。正常结束或者异常退出,进程进入死亡状态。

2、处于运行状态的线程若遇到sleep,则线程进入睡眠状态,不会让出资源锁,sleep结束,线程转为就绪状态,等待系统重新调度。

3、处于运行状态的线程可能在等待io,也可能进入挂起状态。io完成,转为就绪状态。

4、处于运行状态的线程yield,线程转为就绪状态。(yield只让给权限比自己高的)

5、处于运行状态的线程遇到wait,线程处于等待状态,需要notify()/notifyALL来唤醒线程,唤醒后的线程处于锁定状态,获取了“同步锁”,之后,线程才转为就绪状态。处于运行的线程synchronized,加上后 变成同步操作。处于锁定状态,获取了“同步锁”,之后,线程才转为就绪状态。

java多线程有哪些状态?

初始态:一个线程调用了new方法之后,并在调用start方法之前的所处状态。

就绪:一旦线程调用了start 方法,线程就转到Runnable 状态。

阻塞/ NonRunnable:线程处于阻塞/NonRunnable状态,这是由两种可能性造成的:要么是因挂起而暂停的,要么是由于某些原因而阻塞的,例如包括等待IO请求的完成。

停止/退出:线程转到退出状态,这有两种可能性,要么是run方法执行结束,要么是调用了stop方法。

线程的六种状态

线程整个生命周期分为六种状态:NEW状态、RUNNABLE状态、BLOCKED状态、WAITING状态、TIMED_WAITING状态、TERMINATED状态。其中NEW状态、RUNNABLE状态与TERMINATED状态是每个线程必定经历的状态。下面我大致讲解一下每个状态的具体效果。

        NEW状态:尚未启动的线程处于此状态。

        RUNNABLE状态:在Java虚拟机中执行的线程处于此状态。

        BLOCKED状态:被阻塞等待监视器锁定的线程处于此状态。

        WAITING状态:无限期等待另一个线程执行特定操作的线程处于此状态。

        TIMED_WAITING状态:正在等待另一个线程执行最多指定等待时间的操作的线程处于此状态。

        TERMINATED状态:已退出的线程处于此状态。

        流程创建后未启动会进入NEW状态,启动后进入RUNNABLE状态,执行线程任务,结束线程释放,进入TERMIBATED状态。而在RUNNABLE状态时可能会出现由于时间片到期,程序从内部暂停等情况进入阻塞(BLOCKED状态、WAITING状态和TIME_WAITING状态大都可以理解为阻塞),而当达到一定的条件,如程序对线程的唤醒,或争抢到时间片时,线程从阻塞进入RUNNABLE状态。

基于java 线程的几种状态

下面是java 线程的5种状态:

1、新建(new)

新建一个线程的对象。

2、可运行(runable)

线程对象创建后,其他线程调用该线程的start方法。或者该线程位于可运行线程池中等待被线程调用,已获取cpu的使用权。

3、运行(running)

可运行的线程获取了cpu的使用权,执行程序代码

4、阻塞(block)

由于某些原因该线程放弃了cpu的使用权。停止执行。除非线程进入可运行的状态,才会有机会获取cpu的使用权。

(1)等待阻塞:运行中的线程执行wait方法,这时候该线程会被放入等待队列。

(2)同步阻塞:运行中的线程获取同步锁,如果该同步锁被别的线程占用,这个线程会成被放入锁池,等待其他线程释放同步锁。

(3)其他阻塞:运行的线程执行sleep或者join方法这个线程会成为阻塞状态。当sleep超时,join等待线程终止,该线程会进入可运行状态。

5、死亡(dead)

线程run mian 执行完毕后,或者因为某些异常产生退出了 run 方法,该线程的生命周期结束。

关于java有哪几种线程状态和JAVA线程状态的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 java有哪几种线程状态的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JAVA线程状态、java有哪几种线程状态的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Rabbitmq延迟队列实现定时任务的方法
下一篇:包含ips 入侵检测防御系统的词条
相关文章

 发表评论

暂时没有评论,来抢沙发吧~