首先Thread类中run()和start()方法的区别如下:
run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;
start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;
public class Test implements Runnable{
public static void main(String[] args) {
Test T = new Test();
Test1 T1 = new Test1();
Thread tt = new Thread(T, "t");
Thread tt1 = new Thread(T1, "t1");
tt.run();
System.out.println("aaaaaa");
tt1.run();
System.out.println("bbbbbb");
}
@Override
public void run() {
for(int i = 0 ; i < 10 ; i++){
System.out.println("第一个" + i);
}
}
}
class Test1 implements Runnable{
@Override
public void run() {
for(int i = 0 ; i < 10 ; i++){
System.out.println("第二个" + i);
}
}
}
结果为:
运行结果:
第一个0
第一个1
第一个2
第一个3
第一个4
第一个5
第一个6
第一个7
第一个8
第一个9
aaaaaa
第二个0
第二个1
第二个2
第二个3
第二个4
第二个5
第二个6
第二个7
第二个8
第二个9
bbbbbb
以上代码显示:run方法可以创建一个线程,但是相当于同步的方式,没有多线程的存在。
只有调用start方法才是交给jvm管理,才是多线程。