美文网首页
多线程之线程状态

多线程之线程状态

作者: bjchenli | 来源:发表于2017-02-23 16:47 被阅读0次

    1. 线程状态

    线程可以有6中状态:

    New(新创建)
    Runnable(可运行)
    Blocked(被阻塞)
    Waiting(等待)
    Timed Waiting(计时等待)
    Terminated(被终止)

    线程状态转换
    1.1 可运行线程

    一旦调用start方法,线程就处于runnable状态。该线程可能正在运行也可能没有运行。

    1.2 被阻塞线程和等待线程

    当线程处于被阻塞或等待状态时,它暂时不活动。

    • 当一个线程获取一个内部的对象锁(而不是java.util.concurrent库中的锁),而该锁被其他线程持有,则该线程进入阻塞状态。当所有其他线程释放该锁,并且线程调度器允许本线程持有它的时候,该线程将变成非阻塞状态。
    • 当线程等待另一个线程通知调度器一个条件时,它自己进入等待状态。
    • 有几个方法有一个超时参数。通知它们导致线程进入计时等待状态。
    1.3 被终止的线程

    线程因如下两个原因被终止:

    • 因为run方法正常退出而自然死亡;
    • 因为一个没有捕获的异常终止了run方法而意外死亡。

    相关文章

      网友评论

          本文标题:多线程之线程状态

          本文链接:https://www.haomeiwen.com/subject/jadbwttx.html