创建多线程程序的第二种方法:实现Runnable接口
- java.lang.Runnable Runnable接口应该由那些打算通过某一线程执行其实例的类来实现,类必须定义一个称为 run 的无参数方法。
实现步骤:
- 创建一个Runnable接口的实现类;
- 在实现类中重写Runnable接口的run方法,设置线程任务;
- 创建一个Runnable接口的实现类对象;
- 创建Thread类对象,构造方法中传递Runnable接口的实现类对象;
- 调用Thread类中start方法,开启新的线程执行run方法。
创建Runnable接口实现类
package com.zrz.demo02;
//1. 创建一个Runnable接口的实现类;
public class RunnableImpl implements Runnable{
//2. 在实现类中重写Runnable接口的run方法,设置线程任务;
@Override
public void run() {
for(int i=0;i<20;i++){
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
创建一个Runnable接口的实现类对象
package com.zrz.demo02;
public class RunnableDemo01 {
public static void main(String[] args) {
//3. 创建一个Runnable接口的实现类对象;
RunnableImpl run = new RunnableImpl();
//4. 创建Thread类对象,构造方法中传递Runnable接口的实现类对象;
Thread t = new Thread(run);
//5. 调用Thread类中start方法,开启新的线程执行run方法。
t.start();
for(int i=0;i<20;i++){
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
实现Runnable接口创建多线程的好处:
-
避免了单继承的局限性:
前者一个类只能继承一个接口,类继承了Thread类就不能继承其他的类;
后者实现了Runnable接口,还可以继承其他的类,实现其他的接口; -
增强了程序的扩展性,降低了程序的耦合性:
实现了Runnable接口的方式,把设置线程任务和开启线程任务进行了分离(解耦);
实现类中重写了run方法,用来设置线程任务;
创建Thread类对象,调用start方法,用来开启新线程。
版权声明:本文为m0_46352325原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。