Java 中调用 Thread.start() 与 Thread.run()
简介:
中Java中,多线程提供了一种任务并发执行的机制。多线程的关键组件之一是 Thread 类。要执行线程,可以调用 Thread.start() 或 Thread.run()。本文旨在阐明这两种方法之间的差异,并演示它们何时产生差异。
理解差异:
在线程对象上调用 Thread.start() 会启动新的执行线程。这指示操作系统的线程调度程序创建一个新线程并调度其执行。一旦启动,线程就变得独立并与主线程并发执行。
另一方面,在线程对象上调用 Thread.run() 只是在当前线程中执行该线程的 run() 方法。这种情况下,线程不会被调度为独立运行,而是在调用run()方法后依次执行run()方法。
为什么要启动一个线程而不是调用Run?
启动线程比直接调用 run() 有几个好处:
示例演示差异:
为了说明差异,请考虑以下示例:
当使用 run() 方法调用执行此代码时,输出将为:
在这种情况下,run()方法在主线程中执行,并且不存在并发。但是,当使用 start() 方法调用执行代码时,输出将是:
... 后面是主线程的输出,表明线程正在并发运行。
以上是Java 中调用 Thread.start() 和 Thread.run() 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!