我們先做個簡單的輸出
下面是我期望的結果:
--------------------------------------------
[ 0] W0 20
[ 1] W2 7
[ 2] W2 13
[ 3] W2 14
[ 4] W2 7
[ 5] W2 15
[ 6] W2 1
[ 7] W2 14
[ 8] W2 18
[ 9] W2 12
[10] W2 2
--------------------------------------------
[ ]內是目前執行的次數
中間是執行緒的名稱
右邊是產生的數字
所以
輸出在畫面上之後
我們要把數字存入陣列
然後將計數器+1
執行緒都執行完後,我們暫時把陣列的值全部印出來做確認

然後試著執行一下,你會發現怪怪的......
原因在於我們將4個執行緒start之後
main會繼續執行後面的程式碼
也就是說
W0,W1,W2,W3 還有main是同時在跑的
如果希望等到W0,W1,W2,W3都跑完再讓main繼續執行的話
必須加上join
下面是我期望的結果:
--------------------------------------------
[ 0] W0 20
[ 1] W2 7
[ 2] W2 13
[ 3] W2 14
[ 4] W2 7
[ 5] W2 15
[ 6] W2 1
[ 7] W2 14
[ 8] W2 18
[ 9] W2 12
[10] W2 2
--------------------------------------------
[ ]內是目前執行的次數
中間是執行緒的名稱
右邊是產生的數字
所以
輸出在畫面上之後
我們要把數字存入陣列
然後將計數器+1
執行緒都執行完後,我們暫時把陣列的值全部印出來做確認
然後試著執行一下,你會發現怪怪的......
原因在於我們將4個執行緒start之後
main會繼續執行後面的程式碼
也就是說
W0,W1,W2,W3 還有main是同時在跑的
如果希望等到W0,W1,W2,W3都跑完再讓main繼續執行的話
必須加上join
再試著執行一次
上下確認一下,確定成功把數字寫入陣列後
就可以把輸出陣列數字那一段砍掉了
(join的部分先留著)
留言
張貼留言