参考答案
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态。这意味着它可以由JVM调度并执行,但并不意味着线程就会立即运行。
run()方法可以产生必须退出的标志来停止一个线程。
一、run方法运行结果
run()方法只是类的一个普通方法,如果直接调用run()方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到多线程的目的。
实例:
二、start方法运行结果
- start()方法使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
- 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体中的代码执行完毕而直接继续执行后续的代码。
- 通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法。
- 这里的run()方法 称为线程体,它包含了要执行的这个线程的内容,run方法运行结束,此线程随即终止。
调用start方法是启动一个线程,而调用run方法只是thread类中的一个普通方法调用,还是在主线程里执行。
以上,是Java面试题【启动一个线程是用start还是run方法】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—