关于Java线程中的join和sleep
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相关