Thread.currentThread().getName()
静态和getName()
特定 Thread 实例有什么区别?
问问题
16490 次
3 回答
7
不同之处getName()
在于实例方法,这意味着它对Thread
类的实例进行操作。
Thread.getCurrentThread()
是一个类或静态方法,这意味着它不是对类的实例Thread
而是对其类进行操作。
最终的区别是:如果您调用Thread.currentThread().getName()
,currentThread()
将返回 的实例Thread
,然后您可以getName()
在该实例上调用该实例。您不能调用Thread.getName()
,因为getName()
必须在 的实例上调用Thread
。
于 2012-04-19T15:27:00.327 回答
0
然而,恰恰相反,Thread.currentThread() 返回当前的 Thread 实例。因此答案是:这两个函数来自同一个线程。试试这个:
Thread nuThread = new Thread("Proba"){
@Override
public void run() {
System.out.println(this.getName());
Thread other = Thread.currentThread();
System.out.println(other.getName());
System.out.println(this==other ? "Same object":"Different object");
}
};
nuThread.start();
try {
nuThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
于 2018-09-04T18:08:57.743 回答
0
Thread.currentThread().getName(...)
method 指的是当前线程的名称,而getName(...)
指的是 Thread 类的任何实例的名称。
于 2021-10-01T12:39:30.003 回答