C 多執行緒JOIN方法初探

2021-05-22 08:20:24 字數 621 閱讀 5549

[說明:剛接觸多執行緒時,弄不明白join()的作用,查閱了三本書,都不明不白。後來經過自己的一番試驗,終於弄清了join()的本質。大家看看我這種寫法是否易懂,是否真的寫出了join()的本質,多提寶貴意見。]

試一試:執行緒的插入

//《c#初學課堂》

//注意新增命名空間

using system.threading;

static void main(string args)

}});

//執行緒b

thread threadb = new thread(delegate()

}//在這裡插入執行緒a

threada.join();

for (int i = 0; i <= 50000000; i++)

}});

//啟動執行緒

threada.start();

threadb.start();

}執行結果如下,你能分析清楚為什麼嗎?

由執行結果可以看出,一開始兩個執行緒交替進行,當執行緒b執行到語句「threada.join()」時,執行緒a被插入到執行緒b之前,兩個執行緒合併到一起,變為順序執行,直到執行完執行緒a中的所有語句,才去執行執行緒b中剩餘的語句。

C 多執行緒JOIN方法初探

說明 剛接觸多執行緒時,弄不明白join 的作用,查閱了三本書,都不明不白。後來經過自己的一番試驗,終於弄清了join 的本質。大家看看我這種寫法是否易懂,是否真的寫出了join 的本質,多提寶貴意見。試一試 執行緒的插入 c 初學課堂 注意新增命名空間 using system.threading...

多執行緒Join方法

天意憐幽草,人間重晩晴 a.sleep 5000 讓執行緒睡5秒但是,如果你不知道執行緒b需要執行多長時間,並且在a中需要使用到b中的結果,那麼,這時你就可以使用join方法 下面是具體的例子 可以看到,join long time 方法內部其實是呼叫了wait long time 方法,我們了解到...

多執行緒join 方法

直接 public static void main string args for thread t list int n 0 for thread t list catch interruptedexception e system.out.println 完全結束 static class m...