Thread start()和Runnable run()有什么区别
假设我们有以下两个Runnable:
class R1 implements Runnable { public void run() { … }
…
}
class R2 implements Runnable {
public void 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 r1 = new R1();R2 r2 = new R2();
r1和r2
只是实现Runnable
接口并因此实现run()方法的类的两个不同对象。调用时,r1.run()
你正在当前线程中执行它。
第二个示例:两个单独的线程。
Thread t1 = new Thread(r1);Thread t2 = new Thread(r2);
t1并且t2是该类的对象Thread
。当你调用时t1.start()
,它将启动一个新线程并在内部调用该run()方法r1以在该新线程中执行该方法。
以上是 Thread start()和Runnable run()有什么区别 的全部内容, 来源链接: utcz.com/qa/423573.html