在Java中,线程可以通过调用start()
方法或者直接调用run()
方法来执行。这两种方式有着重要的区别:文章来源:https://www.toymoban.com/news/detail-680476.html
- start() 方法:
- 当你调用线程的
start()
方法时,它会使线程进入就绪状态,等待系统调度。系统会为该线程分配资源,并在合适的时机执行线程的run()
方法。 - 实际上,
start()
方法会启动一个新的系统级线程,该线程会并行执行,并与主线程同时运行。 - 使用
start()
方法可以充分利用多核处理器,允许多个线程同时执行。 -
start()
方法内部会完成一些线程初始化工作,如调用run()
方法、分配线程栈空间等。
- run() 方法:
- 直接调用线程的
run()
方法,不会创建新的线程,而是在当前线程中执行run()
方法的代码块。 - 虽然
run()
方法内的代码会被执行,但是由于是在主线程中执行,没有实现真正的多线程并行,只是普通的方法调用。 - 使用
run()
方法不会开启新的线程,因此适用于在当前线程内执行一个任务,而不是并发执行。
下面是一个简单的示例来说明这两种方法的区别:文章来源地址https://www.toymoban.com/news/detail-680476.html
class MyThread extends Thread {
public void run() {
for (int i
到了这里,关于启动线程方法 start ()和 run ()有什么区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!