比如
(1) Thread t1=new Thread();
t1.run();
和
(2) Thread t2=new Thread();
t2.start();
若调用start,则先执行主线程的,后执行子线程的;
若调用run,相当于函数调用,按照程序的顺序执行;
Thread的start才是正在开启线程,例如(2)就是开启了线程,因此先执行主线程,后执行子线程。而(1)用的是t.run(),更本没开启线程,只是调用了run()方法,所以一定是是按程序代码顺序输出。
如下具体例子
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();//如果是这行 则输出结果为:pingpong
t.start();//如果是这行 则输出结果为:pongping
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
转载于:https://my.oschina.net/8824/blog/3021906