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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 棕榈e人 中级黑马   /  2014-8-23 22:56  /  1773 人查看  /  7 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

1.初始状态:创建Thread对象,一、让需要调用的类继承Thread,复写run方法,直接以多态的形式创建线程;二、先让要调用的类去实现Runnable接口,复      写run方法,然后创建Thread类;创建完成即处于初始状态
2.可运行状态:当线程(创建的Thread类)启动start方法时,就进入了可运行状态,此时需要得到cup赋予的时间片,才能执行代码,进入下一状态
3.运行状态:当线程获得cup提供的时间片,也就得到了,执行的权利,此时正在执行,处于运行状态
4.阻塞状态:先了解sleep方法,join方法,yield方法;sleep是静态方法,在某个线程中调用此方法,该线程就会休眠,可以设置休眠时间,其他线程按cup分配     执行;join方法是在当前线程中加入一线程(T),当T执行完毕,当前线程才能执行;yield是静态方法,当线程调用此方法后,就不会继续执行,而是将执行     权利让给具有相同优先级的其他线程,调用这些方法后,暂时放弃执行权的线程就处于阻塞状态
5.终止状态:线程执行完毕
6.锁池状态:当使用线程同步技术时,可以创建对象互斥锁,当其中一个线程得到执行权,且synchronized语句块没有执行完毕,那么其他同步线程暂时无法获       得执行权,此时就处于锁池状态
7.等待队列状态:线程同步,可能出现死锁的情况,此时会用到wait方法和notify方法,当某线程调用wait方法,该线程就会放弃执行,处于等待状态,直到另一      线程唤醒他

评分

参与人数 1技术分 +1 收起 理由
追求卓越 + 1

查看全部评分

7 个回复

倒序浏览
总结的很好啊
回复 使用道具 举报
这是对于java设计模式而言,对于操作系统来说,不同的书籍有不同的划分,什么三状态图,五状态图,七状态图。。。 建议楼主画图表示,更直观,从那个状态可以到那个状态一目了然,更易了解,对于只专心java而言,这些够了,但是通义的说线程就这几种状态,(陋建)
回复 使用道具 举报
多数操作系统原理教材对 进程/线程 状态一般会有详细的解释.
比如, 阻塞态和挂起态有什么不同之类.

不同的系统对 进程/线程 的状态有不同的规定.
对JVM而言, 其在Thread类中写得很明白, 这六种状态:
NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED.
回复 使用道具 举报
内容不错,条理很清晰
回复 使用道具 举报
总结的很好
回复 使用道具 举报
对我的学习有很大的帮助!
回复 使用道具 举报
总结的不错,既然synchronized可以形成锁池,为什么还要wait()?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马