假设我们有两个Runnable:
类R1实现可运行{
公共无效运行(){…}
…
}
类R2实现可运行的{
公共无效运行(){…}
…
}
那么这两者的区别是什么:
公共静态void main(){
R1=新的R1();
R2=新的R2();
r1.run();
r2.run();
}
这是:
公共静态void main(){
R1=新的R1();
R2=新的R2();
螺纹t1=新螺纹(r1);
螺纹t2=新螺纹(r2);
t1.start();
t2.start();
}
第一个示例:没有多线程。两者都在单个(现有)线程中执行。没有线程创建
r1r1=新R1();
R2=新的R2();
r1和r2只是类的两个不同对象,它们实现了Runnable接口,从而实现了run()方法。当您调用r1.run()时,您正在当前线程中执行它
第二个示例:两个单独的线程
线程t1=新线程(r1);
螺纹t2=新螺纹(r2);
t1和t2是类线程的对象。当您调用t1.start()时,它会启动一个新线程,并在内部调用r1的run()方法,在该新线程中执行它