多线程的实现方式 - morris131/morris-book GitHub Wiki

多线程的两种实现方式

Java中实现多线程有两种方法:继承Thread类、实现Runnable接口。

实现Runnable接口

package com.morris.ch1;

public class ThreadImpl1 implements Runnable{
    @Override
    public void run() {
        System.out.println("this thread is implement Runnable interface");
    }

    public static void main(String[] args) {
        Thread thread = new Thread(new ThreadImpl1()); // ThreadImpl1线程无法直接启动,需借助另外一个线程才能启动
        thread.start();
    }
}

运行结果如下:

this thread is implement Runnable interface

继承Thread类

package com.morris.ch1;

public class ThreadImpl2 extends Thread {
    @Override
    public void run() {
        System.out.println("This thread is extend Thread class.");
    }

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

运行结果如下:

This thread is extend Thread class.
### 两种实现方式的区别与联系
1. Thread类底层实现Runnable接口。
2. 实现Runnable接口的线程必须借助Thread类才能启动。
3. 实现Runnable接口可以避免由于Java的单继承特性而带来的局限,增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;




⚠️ **GitHub.com Fallback** ⚠️