关于Java多线程中currentThread()方法的一些信息:
-
currentThread()方法的作用:
该方法可返回当前正在执行的线程对象的引用。这个方法在前面的几个内容里面也有出现,现在来讲讲它的一些细节。 -
currentThread()方法的使用场景:
在Java多线程编程中,currentThread()方法通常用于获取当前线程的名称或ID,以便于线程之间的区分和管理。具体来说,它可以用于以下场景:
(1)获取当前线程的名称:
Thread.currentThread().getName();
上述代码可以输出当前线程的名称,如果没有设置线程名称,则输出默认名称“Thread-N”,其中N为线程在线程池中的编号。
(2)获取当前线程的ID:
Thread.currentThread().getId();
上述代码可以输出当前线程的ID,ID是线程的唯一标识符,用于线程之间的区分。
-
currentThread()方法的注意事项:
需要注意的是,main线程是主线程,和main方法没有关系,只是同名而已。从结果可以发现,ThreadDemo类的构造方法是被main线程调用的,而run方法是被名为Thread-0的线程调用的,run方法是自动调用方法。 -
currentThread()方法的应用案例:
下面是一个简单的Java多线程应用案例,展示了如何使用currentThread()方法获取当前线程的名称和ID:
public class Main {
public static void main(String[] args) {
Thread thread1 = new Thread(()->{
System.out.println("Thread-1 is running");
Thread.currentThread().getName(); // 输出当前线程的名称
Thread.currentThread().getId(); // 输出当前线程的ID
});
Thread thread2 = new Thread(()->{
System.out.println("Thread-2 is running");
Thread.currentThread().getName(); // 输出当前线程的名称
Thread.currentThread().getId(); // 输出当前线程的ID
});
thread1.start();
thread2.start();
}
}
在上述代码中,我们创建了两个子线程thread1和thread2,并通过currentThread()方法获取了它们的线程名称和ID,输出结果如下:
Thread-1 is running
Thread-1
14610
Thread-2 is running
Thread-2
14608