最直接方式是调用thread.currentthread()获取当前线程对象,再通过getname()、getid()、getstate()、getpriority()、isdaemon()等方法分别获取名称、id、状态、优先级和是否为守护线程。

Java 中获取当前线程的详细信息与名称,最直接的方式是使用 Thread.currentThread() 获取当前执行线程对象,再调用其提供的方法。
获取线程名称
每个线程都有一个默认或自定义的名称,可通过 getName() 方法获取:
-
Thread.currentThread().getName()返回字符串形式的线程名 - 主线程默认名为
"main";JVM 创建的系统线程如"Reference Handler"、"Finalizer"等也有固定名称 - 可手动设置名称:
Thread.currentThread().setName("MyWorker")
获取线程 ID 和状态
线程 ID 是 JVM 内唯一的长整型标识,状态反映其生命周期阶段:
-
Thread.currentThread().getId()获取唯一线程 ID(只读) -
Thread.currentThread().getState()返回Thread.State枚举值,如RUNNABLE、WAITING、BLOCKED、TERMINATED等 - 注意:
getState()是快照值,可能在获取后立即变化
查看线程优先级与是否为守护线程
这些属性影响线程调度行为:
-
Thread.currentThread().getPriority()返回优先级(1–10,默认为 5) -
Thread.currentThread().isDaemon()判断是否为守护线程(如true表示该线程不会阻止 JVM 退出) - 守护线程常用于后台服务,例如垃圾回收、监控等
打印完整线程信息(调试常用)
结合多个属性快速输出关键信息,适合日志或调试:
Thread t = Thread.currentThread();
System.out.println("Name: " + t.getName());
System.out.println("ID: " + t.getId());
System.out.println("State: " + t.getState());
System.out.println("Priority: " + t.getPriority());
System.out.println("Is Daemon: " + t.isDaemon());
也可直接调用 t.toString(),它会返回类似 Thread[main,5,main] 的格式(名称、优先级、所属线程组)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











