java实现多线程

    科技2025-09-23  63

    java实现多线程有两种方法

    继承Thread类

    实现Runnable接口

    这两种方法的共同点:

    不论用哪种方法,都必须用Thread(如果是Thead子类就用它本身)产生线程,然后再调用start()方法。

    两种方法的不同点:

    继承Thread类有一个缺点就是单继承,而实现Runnable接口则弥补了它的缺点,可以实现多继承。

    继承Thread类必须如果产生Runnable实例对象,就必须产生多个Runnable实例对象,然后再用Thread产生多个线程;而实现Runnable接口,只需要建立一个实现这个类的实例,然后用这一个实例对象产生多个线程。即实现了资源的共享性。

    基于以上两点所以建议用第二种方法。

    第一种:从Thread派生一个自定义类,然后覆写run()方法:

    public class Main { public static void main(String[] args) { Thread t = new MyThread(); t.start(); // 启动新线程 } } class MyThread extends Thread { @Override public void run() { System.out.println("start new thread!"); } }

    start()方法会在内部自动调用实例的run()方法。

    第二种:创建Thread实例时,传入一个Runnable实例:

    public class Main { public static void main(String[] args) { Thread t = new Thread(new MyRunnable()); t.start(); // 启动新线程 } } class MyRunnable implements Runnable { @Override public void run() { System.out.println("start new thread!"); } }

    或者用Java8引入的lambda语法进一步简写为:

    public class Main { public static void main(String[] args) { Thread t = new Thread(() -> { System.out.println("start new thread!"); }); t.start(); // 启动新线程 } }

    准确来说,创建线程只有一种方式,就是构造Thread类,而实现线程的执行单元有两种方式。

    方法一:实现Runnable接口的run方法,并把Runnable实例传给Thread类。

    方法二:重写Thread的run方法。(继承Thread方法)

    Processed: 0.016, SQL: 8