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