【发布时间】:2011-06-14 08:53:34
【问题描述】:
package javaapplication18;
class Alistair_Therein implements Runnable{
String name
Thread t;
Alistair_Therein(String threadname){
name = threadname;
t = new Thread(this, name);
System.out.println("New thread:" + t);
t.start();
}
public void run(){
try{
for(int i=5; i>0; i--){
System.out.println(name " : " + i);
Thread.sleep(1000);
}
}catch(InterruptedException e) {
System.out.println(name + "interrupted");
}
System.out.println(name + "exiting");
}
}
public class Main {
public static void main(String[] args) {
new Alistair_Therein("One");
new Alistair_Therein("Two");
new Alistair_Therein("Three");
try{
Thread.sleep(10000);
}
}catch(InterruptedException e){
System.out.println("Main Thread interrupted");
}
System.out.println("Main thread exiting.");
}
}
输出:
新线程:线程[One, 5, main] 新线程:线程[Two, 5, main] 新线程:线程[三、五、主] 一:5 二:5 三:5 一:4 二:4 三:4 一:3 二:3 三:3 一:2 二:2 三:2 一:1 二:1 三:1 一出。 两个退出。 三人出境。 主线程退出。为什么Thread[Two, 5, main] 出现在One: 5 之前?
【问题讨论】:
标签: java multithreading