题目
以下代码的输出什么?
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方法是将指定线程加入当前线程,将两个交替执行的线程转换成顺序执行。上面的例子中,语句t.join()
,在线程main中,调用线程t的join方法,将线程t加入线程main中,先执行完线程t,再执行main线程。
所以会在输出main2前,运行线程t的run方法输出test。
更多相关知识点可以看看---Java多线程中join方法的理解