zoukankan      html  css  js  c++  java
  • 线程生命周期

    线程的生命周期

    新建(New)
    new Thread(); 当程序使用new关键字创建一个线程的后,该线程就是“新建”状态;此时,它与其他的java对象一样,仅仅由java虚拟机
    为其分配了内存,并初始化了其成员变量值。此时的线程对象没有表现出热恩和的线程的动态特征,程序也不会执行
    就绪(Runnable)
    thread.start();当程序调用start()方法,该线程处于就绪状态,java虚拟机会为其创建“方法调用栈与程序计数器”;该状态的线程并
    没有开始运行,而是表示该线程可以运行了,至于线程何时运行,取决于JVM中的线程调度器的调度
    运行(Running)
    处于就绪的线程获取到CPU的执行权,开始执行run()方法的执行体;
    运行-->>阻塞Blocked
    线程调用sleep方法主动放弃所占用的处理器资源
    线程调用一个阻塞式的IO方法,在该方法返回之前,线程阻塞
    尝试获取一个同步监视器,但该同步监视器正被其他线程锁持有
    线程正在等待某个通知notify
    线程调用了suspend方法将线程挂起(容易导致死锁)
    阻塞(Blocked)
    阻塞Blocked-->>就绪Runnable
    线程调用sleep方法并指定时间
    线程调用阻塞式的IO方法已经返回
    线程获取了试图获取的同步监视器
    线程等待notify时,其他线程发出了
    死亡(Dead)
    run()方法执行完毕
    抛出一个未捕获的Exeception或Error
    调用stop()方法

              参考:
    https://www.cnblogs.com/keessi/p/7444263.html
  • 相关阅读:
    解决Driver/library version mismatch
    ubuntu 16.04 nfs服务的搭建
    samba on ubuntu
    SSH连接下复制远程linux服务器文件到本地的命令(zz)
    R 语言入门(Ubuntu)
    new repository
    vlc play函数跟踪
    SSH连接下复制远程linux服务器文件到本地的命令(zz)
    c# HttpServer 的使用
    异步Udp监听关闭 出现异常,访问已释放的资源或者其他错误的解决方法
  • 原文地址:https://www.cnblogs.com/draymond/p/12316185.html
Copyright © 2011-2022 走看看