public class JoinThread extends Thread{
public JoinThread(String name){
super(name);
}
public void run(){
for(int i = 0; i < 10; i++){
for(long k = 0; k < 100000000; k++){}
System.out.println(this.getName() + ":"+i);
}
}
public static void main(String[] args){
Thread t1 = new JoinThread("Jimwind G");
t1.start();
try{
//t1.join(1000);
t1.join();
//Thread.sleep(1000);
} catch(InterruptedException e){
e.printStackTrace();
}
System.out.println("over");
}
}
首先明确,main是主线程,main函数中又启动了一个线程JoinThread
解释join:在当前线程main中,加入t1线程,如果调用t1.join(),则停止当前的main线程,直到t1运行完毕才继续运行main线程。
另外,如果t1.join中指定了参数,则当前main线程只会停止其指定的时间,但如果t1还不到指定时间就运行结束,则main线程会马上进入可运行状态,这就跟Sleep的功能有区别了。
参考:http://lavasoft.blog.51cto.com/62575/99153 join相关