黑马程序员技术交流社区
标题: java中线程的几种状态如何充分理解? [打印本页]
作者: 007诸葛亮 时间: 2013-6-6 19:16
标题: java中线程的几种状态如何充分理解?
本帖最后由 007诸葛亮 于 2013-6-7 18:46 编辑
如何对java线程创建,运行,冻结,临时状态,消亡状态的理解?
其中线程处在临时状态时,线程具有执行资格但无执行权,这里所谓的执行资格怎么理解?
作者: 夜默 时间: 2013-6-6 19:22
线程运行状态:
start() sleep(time) 运行中直接消亡 stop()
被创建 -----> 运行 -----> 冻结 消亡
<----- 放弃了执行资格 run方法结束 也消亡
sleep时间到
wait()不能直接回来 notify()唤醒
临时状态 阻塞 具备运行资格 但没有执行权
没有执行资格 冻结状态
有执行资格 临时状态
有执行资格 有执行权 运行状态
执行资格表示可以运行该对象 执行权(线程之间抢夺,也可以理解为,激活码,一次有效)
作者: msileandroid 时间: 2013-6-6 19:30
这是毕老师画的图:
释放执行权就是就是处于临时状态(具备执行资格,可能会"抢到"CPU);冻结就是没有资格也没执行权不可能 “抢到”CPU;
另外就是wait(),sleep()的区别
wait():释放cpu执行权,释放锁。
sleep():释放cpu执行权,不释放锁
作者: 张歆明 时间: 2013-6-6 23:11
按照毕老师说的 临时状态也就是临时阻塞状态 有执行资格但是没有执行权 就是由于 CUP 是时分操作的 在一个确定的时刻 只能由一个线程被执行 可以类比一下 几个候选人都有胜出的资格 就是被选出来的资格来担当什么 但是 最终某个时刻 只能从里面选出来一个人担任什么职位 别的候选人 就不行了 担任什么职位 就可以看成是CPU执行这个线程 其他的线程 虽然也能被执行 但是没有抢到CUP 不好意思 就没有被执行了 但是 下一次某个时刻 还是可以被执行的
作者: 007诸葛亮 时间: 2013-6-7 18:45
谢谢!:)
作者: 张歆明 时间: 2013-6-7 18:56
不客气 好 帮到你我很高兴
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |