从我在 Java
中使用线程的时间开始,我发现了以下两种编写线程的方法:
使用 工具 Runnable
:
public class MyRunnable implements Runnable {
public void run() {
//Code
}
}
//Started with a "new Thread(new MyRunnable()).start()" call
或者, 扩展 Thread
:
public class MyThread extends Thread {
public MyThread() {
super("MyThread");
}
public void run() {
//Code
}
}
//Started with a "new MyThread().start()" call
这两个代码块有什么显着差异吗?
原文由 user65374 发布,翻译遵循 CC BY-SA 4.0 许可协议
是的:IMO 实现
Runnable
是首选方法。您并没有真正专门化线程的行为。你只是给它一些运行的东西。这意味着 组合 是 哲学 上“更纯粹”的方式。_实际上_,这意味着您可以实现
Runnable
并从另一个类扩展……您还可以通过 Java 8 的 lambda 表达式实现Runnable
。