關於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相關
相關文章
相關標籤/搜索