new Thread(new MyRunable()) MyRunable 已经实现了Runable 为什么还需要一个Thread来创建线程
时间: 2023-12-03 12:37:59 浏览: 61
创建线程的方式有两种:继承 Thread 类或实现 Runnable 接口。使用 Runnable 接口的方式更加灵活,因为一个类可以实现多个接口,而一个类只能继承一个父类。
当一个类实现了 Runnable 接口时,它必须实现 run() 方法,该方法是线程执行的主体。然而,实现 Runnable 接口只是定义了一个线程的任务,并没有定义线程本身。
为了创建一个线程,我们需要使用 Thread 类,并将实现了 Runnable 接口的对象作为参数传递给 Thread 的构造函数。Thread 类提供了一些方法来控制线程的执行,如 start() 方法用于启动线程,run() 方法用于执行线程的任务。通过创建 Thread 对象并调用 start() 方法,我们可以在新的线程中执行实现了 Runnable 接口的对象的 run() 方法。
综上所述,使用 Thread 类来创建线程,可以将实现了 Runnable 接口的对象包装成一个线程,并通过调用 start() 方法来启动线程的执行。
相关问题
使用Thread类或者实现Runable接口,创建多线程
可以使用Thread类或者实现Runnable接口来创建多线程。Thread类是一种Java线程,可以通过new关键字创建一个新线程。而实现Runnable接口则需要创建一个实现Runnable接口的类,并实现其中的run()方法,然后将该类的实例传递给一个新的Thread对象来启动线程。使用这两种方式都可以创建多线程,具体使用哪种方式取决于您的应用要求。
通过实现Runnable接口方式创建并启动线程,线程中实现在控制台上打印“hello thread”的功能。 步骤如下: 1.创建一个类实现Runnable接口 2.重写run()方法,在方法内实现打印“hello thread”的功能 3.创建Thread类对象,将实现Runnable接口的类的对象做为参数,传递到Thread类的Thread(Runnable runable)构造方法中 4.通过Thread类对象调用start()方法开启线程
代码如下:
```java
public class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("hello thread");
}
}
public class Main {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
}
}
```
运行结果为:
```
hello thread
```
阅读全文