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

标签 java multithreading runnable implements java-threads

从什么时候开始在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


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

最佳答案

是的:IMO是实现Runnable的首选方法。您并不是真的专门研究线程的行为。您只是在给它一些东西来运行。这意味着composition是哲学上“纯净的”方法。

实际上,这意味着您可以实现Runnable并从另一个类进行扩展。

关于java - Java中的“可运行的实现”与“扩展线程”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60911197/

相关文章:

java - 处理程序未在 1 秒内运行 1000 次

java - hashSet 如何接纳元素

c++ - 如何在c++0x线程中使用wait_for

java - 动态 xml 到 mongoDB

java - 生命游戏未正确暂停

.net - 在不同线程中创建 WPF 窗口时出现异常

Java 线程池执行器

java - ThreadFactory 和 newThread(Runnable r) 如果它是线程,如何访问 r 的属性?

java - mariadb 的字符串不正确,而 mysql 5.5 的字符串不正确

java - 在 "while expected"循环中出现 "do...while"错误