黑马程序员技术交流社区
标题:
线程的六种状态
[打印本页]
作者:
棕榈e人
时间:
2014-8-23 22:56
标题:
线程的六种状态
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方法,该线程就会放弃执行,处于等待状态,直到另一 线程唤醒他
作者:
优乐
时间:
2014-8-24 13:43
总结的很好啊
作者:
┣┫流枫
时间:
2014-8-24 22:19
这是对于java设计模式而言,对于操作系统来说,不同的书籍有不同的划分,什么三状态图,五状态图,七状态图。。。 建议楼主画图表示,更直观,从那个状态可以到那个状态一目了然,更易了解,对于只专心java而言,这些够了,但是通义的说线程就这几种状态,(陋建)
作者:
zuochbd
时间:
2014-8-24 22:52
多数操作系统原理教材对 进程/线程 状态一般会有详细的解释.
比如, 阻塞态和挂起态有什么不同之类.
不同的系统对 进程/线程 的状态有不同的规定.
对JVM而言, 其在Thread类中写得很明白, 这六种状态:
NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED.
作者:
dhgcy
时间:
2014-8-25 11:21
内容不错,条理很清晰
作者:
坤儿
时间:
2014-8-25 12:10
总结的很好
作者:
赵哲成
时间:
2014-8-25 12:17
对我的学习有很大的帮助!
作者:
木易在他乡
时间:
2014-8-25 12:23
总结的不错,既然synchronized可以形成锁池,为什么还要wait()?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2