关于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相关
原文地址:https://www.cnblogs.com/jimwind/p/3259139.html