黑马程序员技术交流社区

标题: 线程的状态切换---我总结的,很全的哦 [打印本页]

作者: 花海1989    时间: 2013-9-5 21:04
标题: 线程的状态切换---我总结的,很全的哦
对于线程来讲,从我们创建它一直到线程运行结束,在这个过程中,线程的状态可能是这样的:
    创建:已经有Thread实例了, 但是CPU还有为其分配资源和时间片。
    就绪:线程已经获得了运行所需的所有资源,只等CPU进行时间调度。
    运行:线程位于当前CPU时间片中,正在执行相关逻辑。
    休眠:一般是调用Thread.sleep后的状态,这时线程依然持有运行所需的各种资源,但是不会被CPU调度。
    挂起:一般是调用Thread.suspend后的状态,和休眠类似,CPU不会调度该线程,不同的是,这种状态下,线程会释放所有资源。
    死亡:线程运行结束或者调用了Thread.stop方法。
下面我们来演示如何进行线程状态切换,首先我们会用到下面方法:
    Thread()或者Thread(Runnable):构造线程。
    Thread.start:启动线程。
    Thread.sleep:将线程切换至休眠状态。
    Thread.interrupt:中断线程的执行。
    Thread.join:等待某线程结束。
    Thread.yield:剥夺线程在CPU上的执行时间片,等待下一次调度。
    Object.wait:将Object上所有线程锁定,直到notify方法才继续运行。
    Object.notify:随机唤醒Object上的1个线程。
    Object.notifyAll:唤醒Object上的所有线程。






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