以下每个线程输出的结果是什么?不用关心顺序,只需输出结果集即可。
public class TestThread {
public static void main(String[] args){
// test1
Thread t1 = new Thread(){
public void run(){
try {
int i = 0;
while(i++<100000000){
}
System.out.println("A1");
} catch (Exception e) {
System.out.println("B1");
}
}
};
t1.start();
t1.interrupt();
// test2
Thread t2 = new Thread(){
public void run(){
try {
Thread.sleep(5000);
System.out.println("A2");
} catch (Exception e) {
System.out.println("B2");
}
}
};
t2.start();
t2.interrupt();
// test3
Thread t3 = new Thread(){
public void run(){
try {
this.wait(50000);
System.out.println("A3");
} catch (Exception e) {
System.out.println("B3");
}
}
};
t3.start();
t3.interrupt();
// test1
Thread t4 = new Thread(){
public void run(){
try {
synchronized (this) {
this.wait(50000);
}
System.out.println("A4");
} catch (Exception e) {
System.out.println("B4");
}
}
};
t4.start();
t4.interrupt();
// test5
try {
t4.start();
System.out.println("A5");
} catch (Exception e) {
System.out.println("B5");
}
}
}
下面是我测试的一些结果:
结果1:B5 A1 B4 B2 B3
结果2:B3 B4 B5 B2 A1
结果3:A1 B2 B3 B5 B4
结果4:B2 A1 B5 B3 B4
结果5:B2 B4 B3 B5 A1
结果6:B2 A1 B5 B4 B3
……等等……
求大神指导,为何是这个结果?