[Ref]
首先來看一下有關的概念: 我們執行一個.exe文件實際上就是開啟了一個進程,同時開啟了至少一個線程,
但是真正幹活的是線程,就好比一個Team有好幾個人,但是真正幹活的是人不是Team.
具體到代碼來說,以Console Application為例:程序Test.exe從Main函數開始運行,實際上是有一個線程
在執行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哈哈~
好了,前面分析完了,現在來看測試用例吧:
下面是测试的结果:
結論:從測試中我們可以很清楚的看到MainThread在NewThread.Join被調用後被阻塞,直到NewThread
執行完畢才繼續執行。
沒有留言:
張貼留言