关于线程中的start和run方法:
用start方法才能真正启动线程,此时线程会处于就绪状态,一旦得到时间片,则会调用线程的run方法进入运行状态,不保证线程的启动顺序.
而run方法只是普通方法,如果直接调用run方法,程序只会按照顺序执行主线程这一个线程。
一个例子:
import java.util.*;
public class Main7{
public static void main(String[] args) {
Thread t = new Thread(){
public void run(){
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong(){
System.out.print("pong");
}
}
调用run(),程序按照顺序执行,则输出结果是pongping
调用start(),表示启动线程,并不保证线程启动的顺序,则pingpong和pongping都有可能