一 点睛
1 API
// 获取线程唯一 ID
public long getId()
// 获取线程名称
public final String getName()
// 当前执行线程的引用
public static native Thread currentThread()
2 说明
线程的 ID 在整个 JVM 进程中都会是唯一的,,并且从 0 开始逐次递增。 mian 线程的 getId() 并不等于0,这是因为在一个 JVM 进程启动的时候,实际上是开辟了很多个线程,自增序列已经有了一定的消耗,因此我们自己创建的线程并不是从0开始的。
二 实战
1 代码
package concurrent;
public class ThreadIDAndName {
public static void main(String[] args) {
Thread thread = new Thread() {
public void run() {
System.out.println(Thread.currentThread() == this);
System.out.println("sub Thread name is " + Thread.currentThread().getName());
System.out.println("sub Thread is " + Thread.currentThread().getId());
}
};
thread.start();
System.out.println("main Thread name is " + Thread.currentThread().getName());
System.out.println("main Thread id is " + Thread.currentThread().getId());
}
}
2 测试
main Thread name is main
true
main Thread id is 1
sub Thread name is Thread-0
sub Thread is 12