线程状态转换.ppt

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线程状态转换 目录 线程生命周期 线程状态介绍 线程的生命周期 线程在它的生命周期中会处于不同的状态: * 运 行 (Running) 死 亡 (Dead) 等待队列 锁池队列 1、run()/main()方法结束 2、异常退出 阻塞状态 (Blocked) 1、join() 2、sleep() 3、等待输入 同步锁 synchronized 1、notify() 2、notifyAll () 取得对象锁 系统调度 1、CPU时间片用完 2、Thread.yield() 新建 (new) start() 可运行 ( Runnable) 1、join()结束 2、sleep()结束 3、输入结束 wait() 线程状态 新建状态(New):使用new关键字创建线程对象,仅仅被分配了内存; 可运行状态(Runnable):线程具备获得CPU时间片的能力。线程进入可运行状态的情况如下: 线程start()方法被调用; 当前线程sleep()、其它线程join()结束、等待用户输入完毕; 某个线程取得对象锁; 当前线程时间片用完了,调用当前线程的yield()方法。 运行状态(Running):执行run方法,此时线程获得CPU的时间片; * 线程状态 阻塞状态(Blocked):线程由于某些事件放弃CPU使用权,暂停运行。直到线程重新进入可运行状态,才有机会转到运行状态。阻塞状态分为如下几种: 同步阻塞 – 线程获得同步锁,若被别的线程占用,线程放入锁池队列中。 等待阻塞 – 线程执行wait()方法,线程放入等待队列中。 其它阻塞 – 线程执行sleep()或join()或发出I/O请求。 死亡状态(Dead):run、main() 方法执行结束,或者因异常退出了run()方法,线程进入死亡状态,不可再次复生。 * 线程章节的所有内容,都将体现在线程的状态转换图上。 * 线程章节的所有内容,都将体现在线程的状态转换图上。 *

您可能关注的文档

文档评论(0)

559997799 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档