获取Java中的当前线程名称和线程ID
时间:2020-01-09 10:35:28 来源:igfitidea点击:
在本文中,我们将介绍如何在Java中创建线程时设置线程名称,如何获取当前线程的名称以及如何在Java中获取线程ID。
在Java中设置线程名称
要在Java中设置线程名称,可以在构造函数中传递线程名称,或者稍后使用setName()方法进行设置。
如果我们有可运行的任务,则可以使用以下构造函数
- public Thread(Runnable target,字符串名称)–在用于分配新Thread对象的此构造函数中,name是新线程的名称。
如果要扩展Thread类,则可以使用的另一个构造函数是:
- Thread(String name)–此处的name参数是新线程的名称。
另一种选择是使用setName()方法
- setName(String name)–将此线程的名称更改为等于参数名称。
在Java中获取当前正在执行的线程名称
为了获取当前正在执行的线程的名称,我们需要在当前正在执行的线程上调用getName()方法。
因此,在Java中获取线程名称是这两种方法的组合。
- currentThread()–返回对当前正在执行的线程对象的引用。这是一种静态方法。
- getName()–返回该线程的名称。
例如
Thread.currentThread().getName();
在Java中获取线程ID
在线程中唯一标识Java线程的另一种方法是通过线程的ID。要获取线程ID,可以使用在当前执行的线程上调用的getId()方法。
- getId()–返回此线程的标识符。线程ID是创建该线程时生成的正整数。线程ID是唯一的,并且在其生命周期内保持不变。当线程终止时,可以重新使用该线程ID。
设置和获取线程名称和线程ID Java示例
在该示例中,创建了三个线程,其中两个线程名称作为构造函数中的参数传递,其中其中一个线程名称使用setName()方法设置。
稍后,在Runnable的run方法中显示当前正在执行的线程的名称和线程ID。
public class PrintNumbers { public static void main(String[] args) { // Creating 3 threads, passing thread name as arg Thread t1 = new Thread(new NumberRunnable(), "T1"); Thread t2 = new Thread(new NumberRunnable(), "T2"); Thread t3 = new Thread(new NumberRunnable()); // setting name using setName method t3.setName("Thread3"); t1.start(); t2.start(); t3.start(); } } class NumberRunnable implements Runnable{ @Override public void run() { // Getting thread's name System.out.println("Current Thread Name- " + Thread.currentThread().getName()); // Getting thread's ID System.out.println("Current Thread ID- " + Thread.currentThread().getId() + " For Thread- " + Thread.currentThread().getName()); } }
输出:
Current Thread Name- T1 Current Thread Name- Thread3 Current Thread Name- T2 Current Thread ID- 12 For Thread3 Current Thread ID- 10 For T1 Current Thread ID- 11 For T2