我刚刚发现我可以使用简单的
创建一个新线程Thread myThread = new Thread() {
public void run() {}
}
但是大多数书都建议我创建一个扩展Thread的类,当我可以直接实例化Thread类时,这对我来说似乎有点太多了。我在创建新类时声明新线程的方式有什么问题吗?
答案 0 :(得分:3)
我建议不要延长Thread
本身。相反,请使用接受Thread
的{{1}}重载:
Runnable
你并没有真正改变Thread thread = new Thread(new Runnable() {
@Override public void run() {
...
}
});
的行为 - 只是给它一些代码来运行。上面的代码比通过子类化Thread
更清楚地表示。
您还应该考虑使用Thread
而不是直接创建线程,请注意。这是创建ExecutorService
的另一个好处 - 您可以灵活地将其传递给Runnable
构造函数或使用Thread
...您可以抽象出ExecutorService
- 创建代码,然后使用您想要的任何方法。