美文网首页
线程——5种状态及转换

线程——5种状态及转换

作者: Samuel_Tom | 来源:发表于2018-09-06 14:39 被阅读0次
线程状态图

1、新建状态:创建了一个线程;

2、可运行状态:调用了线程的start()方法,等待操作系统的调度;

3、运行状态:线程被操作系统调度,获得了CPU使用权,执行程序代码;

4、阻塞状态:线程因某种原因进入阻塞状态,让出了CPU使用权,线程暂停运行,直到进入可运行状态,才有机会被操作系统调度重新进入运行状态,主要有以下三种阻塞情况:

(1)等待阻塞:运行的线程调用了wait()方法,线程释放锁并进入等待队列,直到被其他线程的notify()或notifyall()唤醒,重新获得同步锁并进入可运行状态;

(2)同步阻塞:运行的线程在获取对象的同步锁时,若该对象锁被其他线程占用,JVM会把线程放进锁池中去竞争锁,直到获得同步锁并进入可运行状态;

(3)其他阻塞:运行的线程调用了Thread.sleep()、join()或者发出了IO请求,线程将进入阻塞状态,直到sleep()超时、join()等待线程终止或超时、IO请求处理结束,线程才会重新进入可运行状态;

5、死亡状态:线程的run()或者main()方法执行结束,线程死亡;

相关文章

  • JAVA多线程及线程状态转换

    Java多线程及线程状态转换 - 祖华 - 博客园

  • java线程之一(基础知识总结)

    目录 1、线程的概念 2、创建线程的方法 3、线程的状态及转换 4、线程的主要方法 ---------------...

  • 线程的状态及转换

    上篇简单介绍了synchronized关键字的使用,多个线程并发操作一个共享变量时,当一个线程获得对象锁,其余线程...

  • java线程状态及转换

    java线程状态:new(新建),runnable(就绪),running(运行),blocked(阻塞),dea...

  • Java 线程的状态及状态转换

    通用的线程周期 操作系统中,线程的状态一般包含以下五种:初始状态、可运行状态、运行状态、休眠状态、终止状态 初始状...

  • Java 线程的七种状态

    本篇感性地介绍一下 Java 线程的七种状态以及状态之间的转换 Java 线程状态转换图 Java 线程状态 在 ...

  • java 多线程实现

    一、线程的状态 线程主要有四种状态,任何一个线程必然处于这四种状态其中的一种,具体的状态及转换流程如下: 1. N...

  • 线程——5种状态及转换

    1、新建状态:创建了一个线程; 2、可运行状态:调用了线程的start()方法,等待操作系统的调度; 3、运行状态...

  • 笔记:Java多线程

    4. 线程状态的转换 线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待...

  • 显式锁(二)

    之前在介绍线程的状态及转换中,提到了Object有wait()、wait(long timeout)、notify...

网友评论

      本文标题:线程——5种状态及转换

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