Java多线程(基础篇一) 线程五种状态

吴贵妃
• 阅读 163

线程从创建到销毁死亡总共有五种状态:

状态扭转图

1:新建状态(New):线程对象被创建后进入新建状态。

例如: Thread thread = new Thread();

2:就绪状态(Runnable):也被成为可运行状态,线程对象被创建后,其他线程调用了该对象的 start() 方法,从而来启动线程。处于就绪状态的线程,随时可能被 cpu 执行。

3:运行状态(Running):线程获取 cpu 权限进行执行,线程只能从就绪状态到运行状态。

4:阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃cpu使用权,暂时停止运行,直到进入就绪状态,才有机会转到运行状态。

           1)等待阻塞:通过调用线程的 wait() 方法,让线程等待某工作的完成。

           2)同步阻塞:线程在获取 synchronize 同步锁失败(因为锁被其他线程占用),让线程等待某工作完成。

           3)其他阻塞:通过贤臣的 sleep()  或 join() 或发出了 I/O 请求时,线程会进入阻塞状态,当sleep()状态超时,join() 等待线程终止或者超时,或者 I/O 处理完毕时,线程重新转入就绪状态。

5:死亡状态(Dead):线程执行完成或者因异常退出了 run() 方法,该线程结束生命周期。

作者:Mark_XC
来源:CSDN
原文:https://blog.csdn.net/Mark_Ch...
版权声明:本文为博主原创文章,转载请附上博文链接!

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
java中线程的生命周期
java中线程的生命周期线程是java中绕不过去的一个话题,今天本文将会详细讲解java中线程的生命周期,希望可以给大家一些启发。java中Thread的状态java中Thread有6种状态,分别是:1.NEW新创建的Thread,还没有开始执行2.RUNNABLE可运行状态的T
Wesley13 Wesley13
4年前
java多线程(二)
一、摘要   当我们将线程创建并start时候,它不会一直占据着cpu执行,而是多个线程间会去执行着这个cpu,此时这些线程就会在多个状态之间进行着切换。  在线程的生命周期中,它会有5种状态,分别为:创建、准备、执行、阻塞、死亡二、线程生命周期状态详解  1、创建状态:其实就是newThread()创建了线程对象,这个时候JVM会为其分
Wesley13 Wesley13
4年前
java 面试知识点笔记(九)多线程与并发 下篇
问:线程有哪些状态?!(https://oscimg.oschina.net/oscnet/0643e1fd934e5c9047a9f4b4cc0bd8c54bc.jpg)1.新建(new):创建后尚未启动的线程的状态(新创建的线程但还没有调用start方法)2.运行(Runnable):包含Running和Ready(Runn
Wesley13 Wesley13
4年前
java多线程知识点总结
1\.基本知识点http://zangweiren.blog.51cto.com/412366/94386新建线程的两种方式,继续Thread类和实现runnable接口,启动线程用start方法线程状态:新建,运行,阻塞,等待,终止sleep方
Wesley13 Wesley13
4年前
java 线程及线程池
说明:线程共包括以下5种状态。1. 新建状态(New):线程对象被创建后,就进入了新建状态。例如,ThreadthreadnewThread()。2. 就绪状态(Runnable):也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread
浪人 浪人
4年前
一篇文章弄懂Java多线程基础和Java内存模型
文章目录一、多线程的生命周期及五种基本状态二、Java多线程的创建及启动1.继承Thread类,重写该类的run()方法2.通过实现Runnable接口创建线程类3.通过Callable和Future接口创建线程三、Java内存模型概念四、内存间的交互操作五、volatile和synchronized的
Wesley13 Wesley13
4年前
Java线程的6种状态及切换(透彻讲解)
Java中线程的状态分为6种。1\.初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2\.运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的
Wesley13 Wesley13
4年前
Java并发 wait()、notify()和notifyAll()
一个线程修改一个对象的值,而另一个线程则感知到了变化,然后进行相应的操作,这就是wait()、notify()和notifyAll()方法的本质。具体体现到方法上则是这样的:一个线程A调用了对象obj的wait方法进入到等待状态,而另一个线程调用了对象obj的notify()或者notifyAll()方法,线程A收到通知后从对象obj的wait方法返回,继续
Wesley13 Wesley13
4年前
Java多线程
JavaThread状态NEW创建被创建,但是还没有开始的线程,也就是还没有调用start()方法。RUNNABLE运行就绪可运行状态,在JVM中执行,但是可能等待操作系统CPU资源。BLOCKED阻塞线程阻塞等
Wesley13 Wesley13
4年前
Java中线程的状态及其转化
线程状态转化图:!(https://oscimg.oschina.net/oscnet/59b097655f8d5e104255d6444b76ee2cdb2.png)说明:线程总共包括以下5种状态。1、新状态New:该状态也叫新建状态,当线程对象被创建后,线程就进入了新建状态。例如:ThreadthreadnewThr
Wesley13 Wesley13
4年前
JAVA程序设计练习题集答案
一、判断题1.String字符串在创建后可以被修改。(0)2.引用一个类的属性或调用其方法,必须以这个类的对象为前缀。(0final类名)3.当调用一个正在进行线程的stop()方法时,该线程便会进入休眠状态。(0)4.如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是abst
吴贵妃
吴贵妃
Lv1
飘飘何所似,天地一沙鸥。
文章
4
粉丝
0
获赞
0