using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading;
namespace test
console.writeline(thread.currentthread.name + " has finished");
}static void main(string args)
else
}console.read();}}
}
今天是第一次在c#中接觸thread,自己研究了一下其中thread.join()這個方法,下面談談自己的理解。
thread.join()在msdn中的解釋很模糊:blocks the calling thread until a thread terminates
有兩個主要問題:1.什麼是the calling thread?
2.什麼是a thread?
首先來看一下有關的概念: 我們執行乙個.exe檔案實際上就是開啟了乙個程序,同時開啟了至少乙個執行緒,
但是真正幹活的是執行緒,就好比乙個team有好幾個人,但是真正幹活的是人不是team.
在執行main函式,我們稱作mainthread.假如我們在main函式中宣告了乙個thread,稱作newthread,並且呼叫了
newthread.start()的方法,那麼 mainthread在處理main函式裡面的**時遇到newthread.start()時,就會
去呼叫newthread.
基於上面的討論,我們可以得出結論:在我們剛才的例子中the calling thread就是mainthread,而a thread
指的洽洽就是mainthread呼叫的newthread執行緒。
現在回到msdn的解釋,我們可以這麼翻譯:當newthread呼叫join方法的時候,mainthread就被停止執行,
直到newthread執行緒執行完畢
。這樣就好理解了吧o(∩_∩)o哈哈~
好了,前面分析完了,現在來看測試用例吧:
多執行緒 JOIN
join就是阻塞呼叫執行緒,直到該執行緒結束後,呼叫執行緒才能繼續執行。該影響只存在於執行join方法的執行緒和呼叫該執行緒的執行緒之間 如在t1執行緒中呼叫t2.join 則需要t2執行緒執行完後t1方能繼續執行 試一試 執行緒的插入 c 初學課堂 注意新增命名空間 using system.th...
C 多執行緒JOIN方法初探
說明 剛接觸多執行緒時,弄不明白join 的作用,查閱了三本書,都不明不白。後來經過自己的一番試驗,終於弄清了join 的本質。大家看看我這種寫法是否易懂,是否真的寫出了join 的本質,多提寶貴意見。試一試 執行緒的插入 c 初學課堂 注意新增命名空間 using system.threading...
C 多執行緒JOIN方法初探
說明 剛接觸多執行緒時,弄不明白join 的作用,查閱了三本書,都不明不白。後來經過自己的一番試驗,終於弄清了join 的本質。大家看看我這種寫法是否易懂,是否真的寫出了join 的本質,多提寶貴意見。試一試 執行緒的插入 c 初學課堂 注意新增命名空間 using system.threading...