Java 中的线程实现:比较 Thread.start() 和 Thread.run()
在 Java 中,并发的一个基本方面是线程的创建和执行。在这种情况下,理解 Thread.start() 和 Thread.run() 之间的区别至关重要。
Thread.start() 是负责启动新执行线程的方法。调用时,它会设置线程的堆栈,将其初始状态设置为可运行,并安排它由 Java 虚拟机 (JVM) 执行。相比之下,Thread.run() 直接在调用线程上执行 run() 方法中的代码,而不创建新线程。
为什么使用 Thread.start()?
在 Thread.run() 上使用 Thread.start() 至关重要,因为:
直接调用 Thread.run()
虽然调用 Thread.run() 看起来很方便,但应避免这种方法,原因如下:
示例
考虑以下代码:
public class ThreadExample { public static void main(String[] args) { Runnable task = () -> System.out.println("This is a new thread!"); Thread thread = new Thread(task); // Direct invocation of run() - no multi-threading occurs. // thread.run(); // Correct multi-threading using start(). thread.start(); } }
当注释掉直接调用 Thread.run() 时,输出将显示一个新线程已创建并 ausgeführt,而直接运行 run() 将在主线程中执行代码,产生一个输出,而不需要多线程-threading.
结论
在 Java 中,调用 Thread.start() 是创建和执行线程的首选方法。另一方面,Thread.run() 不应该直接使用,因为它会阻碍多线程和线程管理功能。
以上是为什么在 Java 中执行线程时 Thread.start() 优于 Thread.run()?的详细内容。更多信息请关注PHP中文网其他相关文章!