runnable 和 thread 有什么区别
时间: 2023-02-09 20:37:31 浏览: 97
Runnable 和 Thread 是 Java 中的两种不同的方式来实现多线程。
Runnable 是一个接口,它只有一个 run() 方法,用于定义线程要执行的任务。使用 Runnable 的方式创建线程,可以避免 Java 的单继承限制。
Thread 是 Java 中的一个类,它实现了 Runnable 接口。可以直接继承 Thread 类,并重写它的 run() 方法,来定义线程要执行的任务。
总的来说,使用 Runnable 接口的方式更加灵活,推荐使用。
相关问题
thread和runnable有什么区别
Thread 和 Runnable 都可以用来实现多线程,但有一些区别。Thread 是一个类,可以继承自定义线程类,实现 run 方法来编写线程代码;而 Runnable 是一个接口,可以实现 Runnable 接口,然后将其传递给 Thread 类的构造方法来创建线程。另外,一个类只能继承一个类,但却可以实现多个接口,所以使用 Runnable 接口可以使得类有更好的可扩展性和代码复用性。
runnable和thread
在Java中,线程可以通过继承Thread类或实现Runnable接口来创建。Runnable接口为关联Thread对象的线程提供执行的代码。这些代码放在Runnable的void run()方法中,这个方法虽然不接受任何参数且没有返回值,但是有可能抛出异常。具体来说,Thread类就是实现了Runnable接口,Thread类中的run()方法也是对Runnable接口中的run()方法的实现。我们可以通过以下两种方式来创建Thread和Runnable对象:
1.继承Thread类。我们需要重写Thread类的run()方法,然后在该方法中编写线程的业务逻辑。最后我们可以实例化Thread类对象,并调用其start()方法来启动线程。例如:
```java
class MyThread extends Thread {
public void run() {
System.out.println("MyThread is running!");
}
}
```
2.实现Runnable接口。我们需要重写接口的run()方法,然后在该方法中编写线程的业务逻辑。最后,我们可以将Runnable实例传递给Thread类的构造函数来实例化Thread对象。例如:
```java
class MyRunnable implements Runnable {
public void run() {
System.out.println("MyRunnable is running!");
}
}
```
然后我们可以这样来启动一个线程:
```java
MyThread mt = new MyThread();
mt.start();
MyRunnable mr = new MyRunnable();
Thread t = new Thread(mr);
t.start();
```
阅读全文