A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 悟中生有 中级黑马   /  2013-12-13 22:52  /  1104 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程的状态:
1,被创建
2,运行(临时状态<------>冻结状态)
3,结束
其中临时状态就是:具备运行资格但没有得到执行权;冻结状态就是:具备运行资格,暂时放弃了执行权。
不知道我这样理解有没有不妥的地方?
希望高手指点一下!谢谢!

评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1

查看全部评分

4 个回复

倒序浏览
你看是这样么

p_image-1499.png (35.1 KB, 下载次数: 34)

p_image-1499.png

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报

应该差不多,临时状态应该在被创建后运行前,而冻结状态应该在运行后和结束前。这样理解是不是会更容易些?
回复 使用道具 举报
悟中生有 发表于 2013-12-13 23:05
应该差不多,临时状态应该在被创建后运行前,而冻结状态应该在运行后和结束前。这样理解是不是会更容易些 ...

刚才看到论坛高手以前的回答,感觉这个更清晰些,共同学习学习。
java中,每个线程都需经历新生、就绪、运行、冻结和死亡五种状态,线程从新生到死亡的状态变化称为生命周期。用new运算符和Thread类或其子类建立一个线程对象后,该线程就处于新生状态。
新生(被创建)--->就绪:通过调用start()方法  
就绪(临时状态,说就绪更准确点)--->运行:处于就绪状态的线程一旦得到CPU,就进入运行状态并自动调用自己的run()方法
运行--->冻结:处于运行状态的线程,执行sleep()方法,或等待I/O设备资源,让出CPU并暂时中止自己运行,进入阻塞状态
冻结--->就绪:睡眠时间已到,或等待的I/O设备空闲下来,线程便进入就绪状态,重新到就绪队列中等待CPU。当再次获得CPU时,便从原来中止位置开始继续运行。
运行--->死亡(1)(正常情况下)线程任务完成
                    (2)(非正常状况)线程被强制性的中止,如通过执行stop()或destroy()方法来终止一个线程
回复 使用道具 举报
悟中生有 发表于 2013-12-13 23:10
刚才看到论坛高手以前的回答,感觉这个更清晰些,共同学习学习。
java中,每个线程都需经历新生、就绪、 ...

Nice I Like it
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马