start()和run()的区别
时间: 2024-01-15 16:04:00 浏览: 31
在Java中,当我们创建了一个线程对象后,可以通过调用start()方法来启动线程。当调用start()方法时,系统会自动调用线程对象中的run()方法。
start()方法会启动一个新的线程,并且在新线程中执行run()方法。而直接调用run()方法,则只是在当前线程中调用了run()方法,不会启动新的线程。
因此,start()方法是启动一个新线程的方法,而run()方法只是一个普通的方法,可以在当前线程中被调用。如果我们想要创建一个新的线程并执行线程的任务,就需要调用start()方法。
以下是示例代码:
```
public class MyThread extends Thread {
public void run() {
// 线程执行的代码
System.out.println("线程执行完毕");
}
}
public class Main {
public static void main(String[] args) {
// 创建线程对象
MyThread thread = new MyThread();
// 调用start()方法,启动新线程
thread.start();
// 直接调用run()方法,不会启动新线程
thread.run();
}
}
```
在上面的代码中,调用start()方法会启动一个新线程并执行run()方法中的代码,而直接调用run()方法则只是在当前线程中调用run()方法,并不会启动新线程。