线程的状态

同步线程的几种状态

休眠状态、等待状态和执行状态是同步线程所特有的,其他的新状态、阻塞状态、死亡状态等是所有线程都有的.

休眠状态:所有在同步代码中调用wait forsingleobject方法的线程都会进入该状态,在没有被唤醒或没到达休眠结束时间前,状态是不会改变的。休眠前,线程会自动记录本身的一些状态,比如局部变量的值等(非局部的值是不保存的)。休眠状态的线程会存放在休眠池中,由系统管理。

等待状态:被唤醒的或到达休眠结束时间的休眠线程,和进入同步代码(*1 )的但没有得到钥匙(*2 )的线程,都会进入等待状态。在没有得到钥匙前,线程的状态是不会改变的。等待状态的线程会存放在等待池中,由系统管理。只有在等待池中的线程,才有资格抢夺钥匙。

运行状态:即正在运行的线程。运行状态的线程,能够调用wait 方法,让出钥匙,使自己休眠,进入到休眠池中,并会记录当前的运行状态,以便下次夺取钥匙的时候,能继续执行休眠前的动作。


   注意:在驱动中所使用的“自旋锁”,它的机制不是让线程进入休眠状态,而是类似for循环一直询问。所以非常的浪费CPU时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值