说一下从Java API层面上的6种线程状态

这篇博客详细介绍了Java中线程的6种状态:新建、可运行、阻塞、等待、限期等待和死亡,并通过实例解析了状态之间的转换,帮助读者理解线程在不同场景下的行为。
摘要由CSDN通过智能技术生成

新建(New):这是属于一个已经创建的线程,但是还没有调用start方法启动的线程所处的状态。
可运行(Runnable):该状态包含两种可能。有可能正在运行,或者正在等待CPU资源。包含了操作系统线程状态种的运行,可运行状态和阻塞状态(由于 BIO 导致的线程阻塞,在 Java 里无法区分,仍然认为是可运行);
阻塞(Blocked):阻塞状态,当线程准备进入synchronized同步块或同步方法(排它锁)的时候,需要申请一个监视器锁而进行的等待,会使线程进入BLOCKED状态。如果其线程释放了锁就会结束此状态;
等待(Waiting):该状态的出现是因为调用了方法1。处于该状态下的线程在等待另一个线程 执行一些其余action来将其唤醒。等待其他线程显式唤醒,否则不会再被分配CPU时间片;
限期等待(Timed Waiting):该状态和上一个状态其实是一样的,调用了方法2是不过其等待的时间是明确的。
死亡(TERMINATED):消亡状态比较容易理解,那就是线程执行结束了,run方法执行结束表示线程处于消亡状态了。
image.png

调用 Thread.sleep() 方法使线程进入限期等待状态时,常常用“使一个线程睡眠”进行描述。调用 Object.wait() 方法使线程进入限期等待或者无限期等待时,常常用“挂起一个线程”进行描述。睡眠

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值