首页常见问题正文

多线程实现方式Thread和Runnable的区别?

更新时间:2024-03-21 来源:黑马程序员 浏览量:

IT培训班

  在Java中,实现多线程的两种主要方式是通过继承Thread类或实现Runnable接口。下面是它们之间的主要区别:

  1.继承Thread类:

  (1)当我们继承Thread类时,我们的类就不能再继承其他类了,因为Java不支持多继承。这种方式限制了我们的类的灵活性。

  (2)线程代码通常在子类中重写Thread类的run()方法。

  示例代码如下:

class MyThread extends Thread {
    public void run() {
        // 线程执行的代码
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start();
    }
}

  2.实现Runnable接口:

  (1)实现Runnable接口更灵活,因为我们可以继续扩展其他类。

  (2)我们需要将实现Runnable接口的对象传递给Thread类的构造函数。

1710987598582_多线程实现方式Thread和Runnable的区别.jpg

  示例代码如下:

class MyRunnable implements Runnable {
    public void run() {
        // 线程执行的代码
    }
}

public class Main {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
    }
}

  综上所述,使用Runnable接口实现多线程比继承Thread类更加灵活,因为它不会限制我们的类继承结构。通常情况下,推荐使用实现Runnable接口的方式来创建多线程。

分享到:
在线咨询 我要报名
和我们在线交谈!