从程序结果来看,多个线程调用run()会顺序执行,调用start()则会多线并行,且start()不可重复调用,会产IllegalThreadStateException()
运行结果为:p 1p 2p 3p doneq 1q 2q 3q donepublic class MyThread extends Thread{ public String name; public MyThread(String n){ name = n; } public void run(){ for (int i = 1; i <= 3; i++) { System.out.println(name+" "+i); } System.out.println(name+" done"); } public static void main(String[] args) { MyThread p = new MyThread("p"); MyThread q = new MyThread("q"); p.run(); q.run(); } }
运行结果为:q 1p 1p 2p 3q 2p doneq 3q donepublic class MyThread extends Thread{ public String name; public MyThread(String n){ name = n; } public void run(){ for (int i = 1; i <= 3; i++) { System.out.println(name+" "+i); } System.out.println(name+" done"); } public static void main(String[] args) { MyThread p = new MyThread("p"); MyThread q = new MyThread("q"); p.start(); q.start(); } }