从我在 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
这两个代码块有什么显着差异吗?
最佳答案
是:实现 Runnable
是首选的方法,IMO。您并没有真正专门化线程的行为。你只是给它一些运行的东西。这意味着 composition是哲学上“更纯粹”的方式。
实际上,这意味着您可以实现 Runnable
并从另一个类扩展......你也可以实现Runnable
通过从 Java 8 开始的 lambda 表达式。
关于java - "implements Runnable"与 Java 中的 "extends Thread",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62568268/