java的thread中runnable接口比继承thread类更有优势,请举例说明
时间: 2023-08-16 17:06:03 浏览: 109
当我们使用实现 Runnable 接口的方式创建线程时,一个重要的优势是可以避免由于 Java 不支持多继承而带来的问题。举个例子,假设我们要创建一个类,它需要既能继承某个类又需要实现多线程,这时候就存在一个问题:Java 不支持多继承,我们无法同时继承 Thread 类和其他类。但是,如果我们使用实现 Runnable 接口的方式,就可以避免这个问题。
另一个优势是可以实现资源共享,多个线程可以共享同一个 Runnable 对象。比如,假设我们要编写一个程序,计算 1 到 100 的和。我们可以创建一个 Runnable 对象,让多个线程共享这个对象,并分别计算一部分的和,最后将结果合并即可。这样可以提高程序的效率,避免资源浪费。
下面是使用实现 Runnable 接口的方式创建线程的示例代码:
```java
public class MyRunnable implements Runnable {
public void run() {
// 线程执行的代码
}
}
public class Main {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread1 = new Thread(myRunnable);
Thread thread2 = new Thread(myRunnable);
thread1.start();
thread2.start();
}
}
```
在这个例子中,MyRunnable 类实现了 Runnable 接口,并重写了 run() 方法。在 main() 方法中,我们创建了两个 Thread 对象,并将 MyRunnable 对象作为参数传递给它们。这样,两个线程就共享了同一个 MyRunnable 对象,可以执行相同的代码。
阅读全文