多线程start和run的区别
时间: 2024-04-25 13:21:06 浏览: 96
多线程中,使用`start()`和`run()`方法来启动一个新线程。它们之间的区别如下:
1. `start()`: `start()`方法用于启动一个新线程,并立即返回。当调用`start()`方法时,会创建一个新的线程,并在新的线程中执行`run()`方法中的代码。这样可以实现多个线程的并发执行。
2. `run()`: `run()`方法定义了线程的主要逻辑,包含了线程要执行的代码。但是直接调用`run()`方法并不会启动一个新线程,而是在当前线程中按顺序执行`run()`方法中的代码。这样相当于普通的方法调用,不会实现多线程的并发执行。
总结来说,使用`start()`方法启动一个新线程,可以实现多线程并发执行;而直接调用`run()`方法仅会在当前线程中按顺序执行,不会启动新线程。
相关问题
多线程run和start的区别
多线程中,run()方法和start()方法有着明显的区别。run()方法只是类的一个普通方法,如果直接调用run()方法,程序中只有主线程这一个线程,程序执行路径还是只有一条,需要顺序执行,等待run()方法执行完毕后才能继续执行下面的代码。\[2\]而start()方法是通过调用线程类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有真正开始运行。一旦得到CPU时间片,就开始执行run()方法。但是需要注意的是,此时无需等待run()方法执行完毕,就可以继续执行下面的代码。所以,通过调用start()方法来启动线程才能真正实现多线程的目的。\[1\]\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [线程中start方法和run方法的区别](https://blog.csdn.net/qq_40649503/article/details/124556991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
线程run和start区别
线程的run()方法和start()方法有以下区别:\[1\]\[2\]\[3\]
- run()方法只是类的一个普通方法,如果直接调用run()方法,程序中只有主线程这一个线程,程序执行路径还是只有一条,需要等待run()方法执行完毕后才能继续执行下面的代码。
- start()方法是调用线程类的方法,通过调用start()方法才能真正实现多线程的目的。调用start()方法会启动一个新的线程,并使线程进入就绪状态,当分配到时间片后就可以开始运行了。start()方法会执行线程的准备工作,然后自动执行run()方法的内容,这是真正的多线程工作。
总结起来,直接调用run()方法只是在当前线程中执行run()方法的内容,而调用start()方法会启动一个新的线程,并在新的线程中执行run()方法的内容,实现了多线程的并发执行。
#### 引用[.reference_title]
- *1* *2* [线程中start方法和run方法的区别](https://blog.csdn.net/qq_40649503/article/details/124556991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [线程start() 和 run()的区别](https://blog.csdn.net/weixin_38568503/article/details/123357311)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文