多執行緒 join的應用

2021-07-14 10:00:41 字數 985 閱讀 3481

如果我們有多個子任務需要用多執行緒來處理,但是主線程又需要等待所有子執行緒執行完成後在返回,最簡單的做法就是使用執行緒的join方法。示例**如下:

public class jointest  catch (interruptedexception e) 

system.out.println(thread.currentthread().getname()+" 執行1結束");

}},"join-1");

thread t2 = new thread(new runnable() catch (interruptedexception e)

system.out.println(thread.currentthread().getname()+" 執行2結束");

}},"join-2");

t1.start();

t2.start();

t1.join(1000);

t2.join(1000);

system.out.println(thread.currentthread().getname()+" 執行完成");

}

join用於讓當前執行執行緒等待join執行緒執行結束,其實現原理拒收不停的檢查join執行緒是否存活,如果執行緒存活則讓當前執行緒永遠等待。**入戲:

thread提供了有參的join方法和無參的join方法,無參join方法實際上還是呼叫了有參的join方法,只不過傳入引數為0,代表永遠等待。如果大於0則等待超時時間後返回

public final synchronized void join(long millis)

throws interruptedexception

if (millis == 0)

} else

wait(delay);

now = system.currenttimemillis() - base;}}

}

多執行緒 JOIN

join就是阻塞呼叫執行緒,直到該執行緒結束後,呼叫執行緒才能繼續執行。該影響只存在於執行join方法的執行緒和呼叫該執行緒的執行緒之間 如在t1執行緒中呼叫t2.join 則需要t2執行緒執行完後t1方能繼續執行 試一試 執行緒的插入 c 初學課堂 注意新增命名空間 using system.th...

C 多執行緒 Join

using system using system.collections.generic using system.linq using system.text using system.threading namespace test console.writeline thread.curre...

Python多執行緒 join

宣告 本文介紹介紹的是thread.threading的 join方法 join timeout none wait until the thread terminates.this blocks the calling thread until the thread whose join meth...