当你实现 `Runnable` 接口并重写 `run` 方法时,`run` 方法本身并不会被自动调用。`Runnable` 接口定义了一个没有参数的 `run` 方法,这个方法包含了你希望在线程中执行的代码。
要启动一个线程并执行 `run` 方法中的代码,需要做以下几步:
1. **创建一个 `Runnable` 实例**:实现 `Runnable` 接口并重写 `run` 方法。
2. **创建一个 `Thread` 对象**:将 `Runnable` 实例传递给 `Thread` 类的构造函数。
3. **调用 `Thread` 对象的 `start` 方法**:这将启动一个新的线程,并在新线程中调用 `Runnable` 实例的 `run` 方法。
以下是一个简单的示例,展示了如何实现 `Runnable` 接口并启动一个线程:
public class MyRunnable implements Runnable {@Overridepublic void run() {// 这里是你希望在线程中执行的代码System.out.println("Thread is running");}public static void main(String[] args) {// 创建一个 MyRunnable 实例MyRunnable myRunnable = new MyRunnable();// 创建一个 Thread 对象,并将 MyRunnable 实例传递给它Thread thread = new Thread(myRunnable);// 调用 Thread 对象的 start 方法thread.start();}
}
在这个示例中:
- `MyRunnable` 类实现了 `Runnable` 接口,并重写了 `run` 方法。
- 在 `main` 方法中,我们创建了一个 `MyRunnable` 实例和一个 `Thread` 对象,并将 `MyRunnable` 实例传递给 `Thread` 对象的构造函数。
- 最后,我们调用 `Thread` 对象的 `start` 方法来启动一个新的线程,这个新线程会执行 `MyRunnable` 实例的 `run` 方法。
总结一下,`run` 方法本身不会被自动调用,需要通过创建 `Thread` 对象并调用其 `start` 方法来启动线程,从而在新线程中执行 `run` 方法中的代码。