黑马程序员技术交流社区

标题: 线程状态切换问题 [打印本页]

作者: 樊其杰    时间: 2013-4-2 15:33
标题: 线程状态切换问题
本帖最后由 樊其杰 于 2013-4-5 11:12 编辑

线程运行时调用sleep()方法,此时线程进入到冻结状态,那么在从运行状态切换到冻结状态时有没有临时阻塞状态?
作者: 程媛媛    时间: 2013-4-2 15:40
从运行状态切换到冻结状态不会出现临时阻塞状态,只有解除冻结状态以后可能会进入到临时阻塞状态或者直接进入到运行状态。
作者: ㄨ____陌生    时间: 2013-4-2 15:53
sleep方法能够确定睡眠了某个时间后醒来进入可运行状态,从运行状态切换到睡眠时、不会有临时阻塞状态,只是在那段时间里cpu不去运行他了
作者: HM何伟    时间: 2013-4-2 17:52
运行状态要么到冻结状态,要么到临时阻塞状态.不会从运行状态到临时阻塞状态然后到冻结状态.
你可以去看一下线程的运行状态图,就一目了然了,它那有各种状态的转换.
作者: 奋斗2013    时间: 2013-4-2 18:45
调用sleep()方法并不会让线程释放它所持有的同步锁,他是使线程进入临时阻塞状态,当时间过后就回进入运行状态;而且在临时阻塞这期间它也不会阻碍其它线程的运行。
作者: 庞立森    时间: 2013-4-2 18:53
这种情况根本不会出现,因为他只有从冻结状态被唤醒之后,才有可能进入阻塞状态,根本不会说是sleep()之后在notify()之前进入阻塞状态,
作者: 陈丽莉    时间: 2013-4-2 22:01
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~
作者: 田光峰    时间: 2013-4-3 11:49

当调用sleep()线程就会进入冻结状态,这种情况是不会有临时阻塞状态的,当冻结解除后就会等待获得执行权,这是才有临时阻塞状态。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2