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 回答