一、Runnable介绍
Java中实现多线程有两种方式:继承Thread类或者实现Runnable接口。Runnable接口是一种更轻量级、更灵活的实现多线程的方式,更加符合“面向接口编程”的思想。
public interface Runnable {
public abstract void run();
}
从上面的定义可以看出,Runnable接口只有一个run()方法,表示要执行的任务。如果要使用Runnable接口实现多线程,需要新建一个类实现Runnable接口并实现run()方法。
二、与Thread类的对比
与Thread类相比,使用Runnable接口实现多线程有以下优点:
1、避免单继承局限性:Java中类只能单继承,但是使用Runnable接口却可以实现多个接口。
2、降低耦合性:Thread类直接包含了线程的执行方法run()并继承了Thread类的一些方法,与其他类的耦合度较高;而使用Runnable接口,线程的执行方法run()被单独封装,可以更加灵活的组合。
3、方便线程池管理:可将Runnable作为提交到线程池的任务对象。
三、使用示例
下面是一个使用Runnable接口实现多线程的示例。
public class MyRunnable implements Runnable {
private String threadName;
public MyRunnable(String threadName) {
this.threadName = threadName;
}
public void run() {
for(int i = 0; i < 5; i++) {
System.out.println(threadName + " " + i);
try {
Thread.sleep((long)(Math.random() * 1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Test {
public static void main(String[] args) {
MyRunnable r1 = new MyRunnable("Thread-1");
MyRunnable r2 = new MyRunnable("Thread-2");
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
}
}
执行结果如下:
Thread-1 0 Thread-2 0 Thread-2 1 Thread-1 1 Thread-1 2 Thread-2 2 Thread-2 3 Thread-1 3 Thread-1 4 Thread-2 4
四、总结
Java Runnable是一种更加灵活、轻量级的实现多线程的方式,相比于Thread类更具有优势。使用Runnable接口可以提高java程序的弹性和可扩展性。在实际开发中,应该根据具体需求选择合适的多线程实现方式。
原创文章,作者:OXJT,如若转载,请注明出处:https://www.506064.com/n/146417.html
微信扫一扫
支付宝扫一扫