2017-03-16 83 views
0

哪种方法更合适:通过调用super(name)或调用setName(name)来设置线程的名称?在构造函数中设置线程的名字

class MyThread extends Thread{ 
    MyThread(String name){ 
//  super(name);  // which one is preferable? 
//  setName(name); 
    } 
    public void run(){ /* business logic */ } 
} 

在ctor中调用setName()会带来副作用吗?我问的原因是,大多数教程使用super(name),但我记得在YouTube上观看视频,其中大学教授总是把setName()正确的在ctor ...

+0

好吧,编译器会自动调用'super()',所以你不妨做'super(name)'。我想,只是好习惯 –

回答

2

除了如果你不能够在线程实例化之后调用setName(),如果任一线程的状态为NEW或该线程的access privileges已更改。总之,最好在Thread实例本身设置名称以避免意外。

相关问题