java线程状态详解(6种)

2021-11-07 14:55|来源: 网路

java线程类为:java.lang.Thread,其实现java.lang.Runnable接口。

public
class Thread implements Runnable {
    /* Make sure registerNatives is the first thing <clinit> does. */
    private static native void registerNatives();
    static {
        registerNatives();
    }

    private volatile String name;
    private int            priority;
    private Thread         threadQ;
    private long           eetop;
    
    ......
}

线程在运行过程中有6种状态,分别如下:

NEW:初始状态,线程被构建,但是还没有调用start()方法

RUNNABLE:运行状态,Java线程将操作系统中的就绪和运行两种状态统称为“运行状态”

BLOCK:阻塞状态,表示线程阻塞于锁

WAITING:等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或者等待)

TIME_WAITING:超时等待状态,可以在等待的时间自行返回的

TERMINATED:终止状态,表示当前线程已经执行完毕

相关问答

更多
  • 寻找孙鑫老师的[2023-03-17]

    动力节点视频教程由国内知名讲师王勇老师录制,下载地址:北京动力节点官网 视频简介 DRP分销资源计划项目之业务介绍 DRP分销资源计划项目之数据库设计 北京动力节点_DRP分销资源计划项目之HTML 北京动力节点_DRP分销资源计划项目之CSS 北京动力节点_DRP分销资源计划项目之JavaScript 北京动力节点_DRP分销资源计划项目之Ajax 北京动力节点_DRP分销资源计划项目之JSP 北京动力节点_DRP分销资源计划项目之Servlet 北京动力节点_DRP分销资源计划项目之JDBC 北京动力节 ...
  • ssh很简单。。有个实例项目,对照着,自己做个项目。下来后,基本上SSH就对你半透明了。。。 你应该要的是一个具体的开源项目,项目中不懂的。还可以问给你的人。。
  • 在Java运行时刻,能否知道一个类的属性方法并调用改动之?对于任意一个对象,能否知道他的所属类,并调用他的方法?答案是肯定的。这种动态的获取信息及动态调用方法的机制在Java中称为“反射”(reflection)。 Java反射机制主要提供以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法。 Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Refl ...
  • 单例模式也是一种比较常见的设计模式,它到底能带给我们什么好处呢?其实无非是三个方面的作用: 第一、控制资源的使用,通过线程同步来控制资源的并发访问; 第二、控制实例产生的数量,达到节约资源的目的。 第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的弗虎缔臼郫铰惦歇定忙条件下,让多个不相关的两个线程或者进程之间实现通信。 比如,数据库连接池的设计一般采用单例模式,数据库连接是一种数据库资源
  • bin:可执行文件,命令和工具 db:自带的derby数据库 demo:演示程序 include:C/C++的头文件 jre:运行时环境(Java Runtime Environment),虚拟机所在目录 jre/bin:运行时环境的可执行文件和动态连接库等 jre/bin/server:以server模式运行的jvm动态连接库 jre/bin/client:以client模式运行的jvm动态连接库 jre/lib:运行时类库 lib:工具包类库 samples:程序例子
  • CSDN上找找,应该有 这里有,但不全 http://book.csdn.net/bookfiles/56/index.html#c1 这个比较全 JAVAWEB开发详解(孙鑫)电子版下载: 大小:318M 地址:ftp://125.64.92.37/book7/20070608/09e143d0-f4e1-459a-bee3-48332b8d2e97.rar
  • Map map = new TreeMap--->这个就可以排序拉 List list --->Collections.sort(list);排序成功
  • 在linux上面装好lamp(或是lnmp)环境,把数据导入进去,配置好虚拟主机(如果服务器就用这一个网站,就不需要了),就可以正常运行了
  • 实际上,阻塞更容易实现,更可靠,并且不会引入任何额外的开销/延迟。 如果您不想使用join() ,请考虑使用CountDownLatch ,它允许您等待一组线程。 另一个更令人愉快的方法是使用轻量级ExecutorCompletionService包装的ExecutorCompletionService 。 两种方法都可以以非阻塞方式使用,例如仅窥视而不是阻塞和等待结果。 但是为了不浪费CPU周期,有一个单独的后台线程阻塞并等待结果并在所有工作线程完成后立即发送一些事件。 或者,让每个工作线程在完成后发送一 ...
  • 这些状态与Thread.State枚举中提到的状态相同。 “等待”是指,正如文档说明的: 由于调用以下方法之一,线程处于等待状态: Object.wait没有超时 Thread.join没有超时 LockSupport.park “监视器”是BLOCKED状态,其中线程正在等待获取对象上的锁定(因为它尝试输入synchronized块或方法,而另一个线程已经保存相关锁)。 These states are the same as mentioned in the Thread.State enum. "Wa ...