线程start和run区别
时间: 2023-09-13 20:06:38 浏览: 124
Java中的线程有两种启动方式:start()方法和run()方法。
- start()方法:启动一个新线程,并调用线程的run()方法。使用start()方法启动线程,系统会为新线程创建一个新的栈,并在新栈中执行run()方法。
- run()方法:直接在当前线程中执行run()方法,不会创建新线程。
因此,如果直接调用run()方法,程序不会并发执行,而是顺序执行。而调用start()方法则会启动新线程,程序并发执行。
相关问题
多线程start和run的区别
多线程中,使用`start()`和`run()`方法来启动一个新线程。它们之间的区别如下:
1. `start()`: `start()`方法用于启动一个新线程,并立即返回。当调用`start()`方法时,会创建一个新的线程,并在新的线程中执行`run()`方法中的代码。这样可以实现多个线程的并发执行。
2. `run()`: `run()`方法定义了线程的主要逻辑,包含了线程要执行的代码。但是直接调用`run()`方法并不会启动一个新线程,而是在当前线程中按顺序执行`run()`方法中的代码。这样相当于普通的方法调用,不会实现多线程的并发执行。
总结来说,使用`start()`方法启动一个新线程,可以实现多线程并发执行;而直接调用`run()`方法仅会在当前线程中按顺序执行,不会启动新线程。
Java线程start和run的区别
Java中的线程有两种启动方式:start()方法和run()方法。
- start()方法:启动一个新线程,并调用线程的run()方法。使用start()方法启动线程,系统会为新线程创建一个新的栈,并在新栈中执行run()方法。
- run()方法:直接在当前线程中执行run()方法,不会创建新线程。
因此,如果直接调用run()方法,程序不会并发执行,而是顺序执行。而调用start()方法则会启动新线程,程序并发执行。
阅读全文