位置:首页 > Java > Runnable接口实现多线程的方法与使用详解

Runnable接口实现多线程的方法与使用详解

时间:2026-08-15  |  作者:云端旅人  |  阅读:0

上一节的案例里,是通过继承Thread类来完成多线程的。这种写法确实直接,但也有明显限制:Ja va的类只能单继承。

也就是说,一旦某个类已经继承了别的父类,就没法再继续继承Thread类来实现多线程。遇到这种情况,更合适的做法通常是改为实现Runnable接口。

实现Runnable接口的基本步骤

使用实现Runnable接口的方式来实现多线程的主要步骤如下:

  • (1)创建一个Runnable接口的实现类,同时重写接口中的run()方法;
  • (2)创建Runnable接口的实现类对象;
  • (3)使用Thread有参构造方法创建线程实例,并将Runnable接口的实现类的实例对象作为参数传入;
  • (4)调用线程实例的start()方法启动线程。

接下来通过一个案例来演示如何通过实现Runnable接口的方式来实现多线程,如文件1所示。

文件1 Example02.ja va

 1    //1、定义一个实现Runnable接口的实现类
 2    class MyThread2 implements Runnable {
 3        // 1.1、重写Runnable接口的run()方法
 4        public void run() {
 5            int i=0;
 6            while (i++ <5) { 
 7                System.out.println(Thread.currentThread().getName()
 8                                     +"的run()方法在运行");
 9            }
 10        }
 11    }
 12    public class Example02 {
 13        public static void main(String[] args) {
 14            // 2、创建Runnable接口实现类的实例对象
 15            MyThread2 myThread2 = new MyThread2();
 16            // 3、使用Thread(Runnable target, String name)构造方法创建线程对象
 17            Thread thread1 = new Thread(myThread2,"thread1");
 18            // 4、调用线程对象的start()方法启动线程
 19            thread1.start();
 20            // 创建并启动另一个线程thread2
 21            Thread thread2 = new Thread(myThread2,"thread2");
 22            thread2.start();
 23        }
 24    }

运行结果如图1所示。

Runnable接口实现多线程的方法与使用详解_wishdown.com

图1 运行结果

案例分析

在文件1里,先定义了一个实现Runnable接口的类MyThread2,并对run()方法进行了重写。

接着在main()方法中,按顺序创建并启动了两个线程实例。具体来说,main()方法里会先生成Runnable实现类对象myThread2。

然后,再把myThread2作为Thread构造方法的参数传进去,从而创建线程实例。最后,同样通过start()方法把线程启动起来。

从图1可以看出,两个线程对象同样交互执行了各自重写的run()方法,并打印出对应的输出信息。

这就说明,案例通过实现Runnable接口的方式实现了多线程。

小提示

Runnable接口中只有一个抽象的run()方法,那么该接口就属于JDK 8中定义的函数式接口。

在使用时,可以直接通过Lambda表达式的方式更简洁的来实现线程实例。

同样,在下一小节将要讲解的Callable接口也属于函数式接口。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多