从我什么时候花在线程中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

这两个代码块有显着差异吗?

答案

是:实施Runnable是IMO的首选方法。您并不是真正专注于线程的行为。您只是给它运行的东西。这意味着作品是个从哲学上讲“更纯净"的路。

实际的 术语,这意味着您可以实施Runnable并从另一个班级延伸…您也可以实施Runnable通过Java 8的lambda表达方式。

来自: stackoverflow.com