线程中的Run()与start():全面讲解
多线程编程中,有效理解Thread.run之间的区别() 和 Runnable.run() 是至关重要。
问题:
考虑以下代码片段:
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); }
答案:
第一个示例:否多线程
第一个片段中,r1.run() 和 r2.run() 直接执行,无需创建新线程。因此,R1 和 R2 在主线程中按顺序执行。
第二个示例:多线程
在第二个片段中,创建了 Thread 对象(t1 和 t2)分别封装 R1 和 R2 实例。当调用 t1.start() 和 t2.start() 时,会启动新线程,每个线程与主线程并行并发执行相应 Runnable 实现的 run() 方法。
Key区别:
以上是Java 线程中的 Run() 与 start():多线程行为有何区别?的详细内容。更多信息请关注PHP中文网其他相关文章!