线程的六种状态

  六种状态定义:java.lang.Thread.State

  

  1、新建状态:线程对象创建了但是没有调用start()方法。

  2、可运行状态(Runnable)

    Running(运行中状态):被调用器(scheduler)调度,CUP正在执行

    Ready(就绪状态):等待调度器调度

    Ready→调度器选中→Running

    Running→调度器切换 | yeild()方法→Ready

  3、无限等待状态(Waiting)

    Runnable→wait()方法 | join()方法→Waiting

    Waiting→notify()方法 | notifyAll()方法→Runnable

  4、超时等待状态(Timed_Waiting)

    Runnable→sleep(long millis) | wait(long millis) | join(long millis)→Timed_Waiting

    Timed_Waiting→等待时间结束 | notify() | notifyAll()→Runnable

  5、阻塞状态(Blocked)

    被监视器锁监视的线程,没有获得同步锁的被阻塞

    Runnable→没有获取锁→阻塞

    阻塞→获取锁对象→Runnbale

  6、Terminated(终止)

    Runnable→任务方法执行完毕 | 发生异常→Terminated

posted @ 2022-03-05 17:04  杨某0409  阅读(116)  评论(0)    收藏  举报