題目
以下代碼的輸出什么?
public class MyThread extends Thread{
public void run(){
System.out.println("test");
}
public static void main(String[] args){
Thread t = new MyThread();
t.start();
System.out.println("main");
try{
t.join();
}catch (Exception e){
e.printStackTrace();
}
System.out.println("main2");
}
}
分析與解答
答案是:
main
test
main2
Thread.join方法是將指定線程加入當前線程,將兩個交替執(zhí)行的線程轉(zhuǎn)換成順序執(zhí)行。上面的例子中,語句t.join(),在線程main中,調(diào)用線程t的join方法,將線程t加入線程main中,先執(zhí)行完線程t,再執(zhí)行main線程。
所以會在輸出main2前,運行線程t的run方法輸出test。
更多相關(guān)知識點可以看看---Java多線程中join方法的理解