栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

【总结】Java 线程的七种状态

Java 更新时间:发布时间: 百科书网 趣学号

目录
    • 1.线程的状态分类
      • (1)New
      • (2)Runnable(Running,Ready)
      • (3)Terminated
      • (4)Waiting
      • (5)Timed_waiting
      • (6)Blocked
    • 2.线程状态间的转换(一图流)

1.线程的状态分类 (1)New

Thread对象被创建,但还未启动
也就是还未调用start方法,一个线程被真的创建,是取决于是否调用了start方法。

(2)Runnable(Running,Ready)

线程运行状态
Thread对象被创建,并且调用了start方法
(就绪)Ready状态,假设cpu一次只可跑一个线程,一次执行区间,两个线程抢这个cpu,那么没抢到cpu的那个线程就是Ready状态,抢到的那个就是Running状态

(3)Terminated

线程结束状态,线程所要执行的任务结束了
start方法执行结束

(4)Waiting

线程等待状态
调用了wait,join的无参方法

(5)Timed_waiting

线程超时等待状态
调用了sleep,join(带时间参),wait(带时间参)的方法,调用有关时间的方法都会进入这个状态

(6)Blocked

线程阻塞状态
这里涉及到线程锁
假设几个线程抢一把锁,没抢到的线程便会进入阻塞状态,直到抢到为止。
如果不清楚锁是什么,就可以这么理解:
假如cpu是马桶,那么锁就是厕所的门,把线程比作人,每个人想在马桶上执行,就得抢这个门(上厕所不得锁门不是嘛),那么抢到这个门之后就把他锁上,这是其他人就进入了阻塞状态,直到抢到这个门为止。

2.线程状态间的转换(一图流)


当然这些状态的转换还存在一些其他的方法,不过我对那些方法还不是很了解,就不罗列出来了。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1064778.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号