黑马程序员技术交流社区

标题: 关于多线程,对于毕老师的视频里,第11天05部分有点迷惑 [打印本页]

作者: 黄伟成    时间: 2013-4-3 19:41
标题: 关于多线程,对于毕老师的视频里,第11天05部分有点迷惑
本帖最后由 黄伟成 于 2013-4-3 19:46 编辑

本人刚刚自学到第11天的05部分,在视频的10分30秒的位置开始,老师用陈述的方式对运行状态、临时状态和冻结状态分别进行解释。当解释到临时状态时,说,“有执行资格的叫做临时状态”。而视频画面里对临时状态的解释却是写着“具有运行资格,却没有执行权”。
       也许是本人太过于执着字眼上的问题,但本人真的想搞清楚临时状态,求哥们指点指点。

     另外,哥们如果对其他两个状态(冻结状态和运行状态)有见解的话,也请赐教。先谢了!
作者: 小黑黑    时间: 2013-4-3 19:58
先说冻结状态吧,冻结状态就是线程处于冻结,cpu不会考虑执行这个线程,可以假设为这个线程是cpu看不到的,就不给这个线程执行的机会。
临时状态是指从冻结状态解冻了,cpu能看到了,也会将执行权给这个状态的线程,但至于什么时候运行,要cpu说了算,就是说临时状态的线程可以被运行了,但是还没有得到cpu分配到执行权,所以现在是没有执行权的,只有得到了执行权才会被执行。
作者: 朱盛文    时间: 2013-4-3 20:24
如图所示:
       临时状态即图上所说的“具备运行资格,但没有执行权”,我举个例子来解释一下这句话。比如参加某场比赛,组委会要求参赛选手必须是在校大学生,而且还得是大一新生,只有满足这个条件,你才具备“参赛资格”,这就对应图上的“运行资格”。此时你满足这个条件,你就具备参赛资格了,但是比赛的时候还有一个先后顺序吧?哪位选手先上场,哪位后上场,这得听组委会的安排,没轮到你上场呢,你就不能上场,这就相当于“没有执行权”,有没有执行权得听CPU的。有运行资格了,CPU就有可能执行到你,没有运行资格,CPU就不可能考虑执行你。

线程状态图.jpg (62.74 KB, 下载次数: 62)

线程状态图

线程状态图

作者: 黄伟成    时间: 2013-4-4 14:23
朱盛文 发表于 2013-4-3 20:24
如图所示:
       临时状态即图上所说的“具备运行资格,但没有执行权”,我举个例子来解释一下这句话。比 ...

谢谢哥们的回答,我还想请问,就是图中,冻结状态那部分里的所表示的执行资格是否就是运行资格呢?
作者: 黄伟成    时间: 2013-4-4 14:23
小黑黑 发表于 2013-4-3 19:58
先说冻结状态吧,冻结状态就是线程处于冻结,cpu不会考虑执行这个线程,可以假设为这个线程是cpu看不到的, ...

谢谢解答,我了解了。
作者: 黄玉昆    时间: 2013-4-4 17:01
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




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