黑马程序员技术交流社区

标题: java中线程的几种状态如何充分理解? [打印本页]

作者: 007诸葛亮    时间: 2013-6-6 19:16
标题: java中线程的几种状态如何充分理解?
本帖最后由 007诸葛亮 于 2013-6-7 18:46 编辑

如何对java线程创建,运行,冻结,临时状态,消亡状态的理解?
其中线程处在临时状态时,线程具有执行资格但无执行权,这里所谓的执行资格怎么理解?
作者: 夜默    时间: 2013-6-6 19:22
线程运行状态:
                    start()               sleeptime                           运行中直接消亡 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-6 23:11
按照毕老师说的 临时状态也就是临时阻塞状态  有执行资格但是没有执行权  就是由于  CUP 是时分操作的 在一 ...

谢谢!:)
作者: 张歆明    时间: 2013-6-7 18:56
007诸葛亮 发表于 2013-6-7 18:45
谢谢!

不客气 好  帮到你我很高兴




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