概括的解释下线程的几种可用状态

1.新建:new 创建一个线程对象

2.可运行:runnable 其他线程,比如主线程(main方法)执行start()方法,则会将线程放入 可运行线程池中,等待被线程调度选中,获得cpu的使用权

3.运行:running 该线程已经获得 cpu时间片 执行程序代码。

4.阻塞:block 因为线程因为某种原因放弃了cpu的使用权,也就是cup时间片,暂时停止运行  直到这个线程进入可运行(runnable)状态 才有机会获得cpu的使用权 变为running状态

     阻塞情况分为三种:

         1.等待阻塞: 线程执行 .wait() 方法 将线程放入 等待队列中 waiting queue 。

        2.同步阻塞: runing线程 在执行程序 遇到同步锁并被其他线程占用的时候 】jvm会将当前线程放入到 锁池中,等待占用锁的线程执行完毕。

        3.其他阻塞:当运行中的线程执行  sleep(), join() 等 或者io请求 则 jvm 会将该线程 设置为阻塞状态,知道 sleep join执行完毕,终止 或者 io执行完毕 则将该线程设置为可运行 runable状态

5.死亡 dead : 程序执行完 run方法 或者 main方法 或者 执行报错终止 则线程死亡,死亡线程不可重生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值