一尘不染

Java中的“可运行的实现”与“扩展线程”

javascript

从什么时候开始在Java中使用线程开始,我发现了以下两种编写线程的方法:

与implements Runnable:

public class MyRunnable implements Runnable {
    public void run() {
        //Code
    }
}
//Started with a "new Thread(new MyRunnable()).start()" call

或者,使用extends Thread:

public class MyThread extends Thread {
    public MyThread() {
        super("MyThread");
    }
    public void run() {
        //Code
    }
}
//Started with a "new MyThread().start()" call

这两个代码块有什么显着区别吗?


阅读 323

收藏
2020-10-01

共1个答案

一尘不染

是的:RunnableIMO是首选的工具。您并不是真的专门研究线程的行为。您只是给它一些运行的机会。这意味着合成是从哲学上讲“更纯净”的方式。

在实践方面,它意味着你可以实现Runnable从另一个类扩展为好。

2020-10-01