![Java多线程编程核心技术(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/745/42637745/b_42637745.jpg)
上QQ阅读APP看书,第一时间看更新
1.2.5 实现Runnable接口
如果想创建的线程类已经有了一个父类,就不能再继承自Thread类,因为Java不支持多继承,所以需要实现Runnable接口来解决这样的问题。
创建项目t2,继续创建一个实现Runnable接口的MyRunnable类,代码如下:
package myrunnable; public class MyRunnable implements Runnable { @Override public void run() { System.out.println("运行中!"); } }
如何使用这个MyRunnable.java类呢?这就要看Thread.java的构造函数了,如图1-15所示。
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-15.jpg?sign=1739945350-LSkFFHgBzK0URZpz2btOCUDsvLwproJe-0-c26826b9c36e3714a345d0792c405298)
图1-15 Thread构造函数
在Thread.java类的8个构造方法中,有5个构造方法可以传递Runnable接口。说明构造方法支持传入一个Runnable接口的对象,运行类代码如下:
public class Run { public static void main(String[] args) { Runnable runnable=new MyRunnable(); Thread thread=new Thread(runnable); thread.start(); System.out.println("运行结束!"); } }
运行结果如图1-16所示。
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-16.jpg?sign=1739945350-9fuRLDz2Deox6ZLYrNenW7OFL0ma8PVX-0-782351bf855e751fd23e0d4be43638b9)
图1-16 运行结果
图1-16所示的运行结果和采用继承Thread类的方法的运行结果没有什么特别之处,输出效果一样:异步执行。