thread调用start和调用run的去呗
时间: 2024-06-11 10:05:47 浏览: 7
在Java中,Thread类提供了两种方式来启动一个新线程:调用start()方法和直接调用run()方法。
1. 调用start()方法
当调用Thread类的start()方法时,会创建一个新的线程,并在新线程中调用run()方法。start()方法会立即返回,不会等待线程执行完毕。
示例代码:
```
public class MyThread extends Thread {
public void run() {
// 线程执行的代码
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // 启动线程
}
}
```
2. 直接调用run()方法
当直接调用Thread类的run()方法时,不会创建新的线程,而是在当前线程中直接执行run()方法。因此,直接调用run()方法不会实现多线程的效果。
示例代码:
```
public class MyThread implements Runnable {
public void run() {
// 线程执行的代码
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.run(); // 直接调用run()方法
}
}
```
总结:
调用start()方法会创建一个新线程,并在新线程中执行run()方法,实现多线程的效果;直接调用run()方法不会创建新线程,而是在当前线程中直接执行run()方法,不具备多线程的效果。因此,一般情况下应该调用start()方法来启动线程。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)