宣告一個空數組,開四個行程同時給數組中push值,這個push進去的順序是怎麼樣的?
沒有聽過js有多進程的說法,沒辦法同時修改一個陣列。你可以貼個程式碼讓其他大牛看看
你用NodeJS寫吧
簡單實驗了以下,多個進程(任務)操作時,數組的值取決於最後一個的進程。我使用 2個 setTimeout 和 1個setInterval 同時操作一個數組,並分別 push 進 1、2、3 三個值,最後得到的結果是:
setTimeout
setInterval
push
[1, 2, 3, 3, 1, 1, 3, 1, 1, 3]
在 阮一峰 大神的文章中有明確的解釋:單線程就意味著,所有任務需要排隊,前一個任務結束,才會執行後一個任務。如果前一個任務耗時很長,後一個任務就得一直等著。 ;查看原文
去測試一下就知道了啊,每push成功一次列印一下此陣列
沒有聽過js有多進程的說法,沒辦法同時修改一個陣列。你可以貼個程式碼讓其他大牛看看
你用NodeJS寫吧
簡單實驗了以下,多個進程(任務)操作時,數組的值取決於最後一個的進程。我使用 2個
setTimeout
和 1個setInterval
同時操作一個數組,並分別push
進 1、2、3 三個值,最後得到的結果是:在 阮一峰 大神的文章中有明確的解釋:單線程就意味著,所有任務需要排隊,前一個任務結束,才會執行後一個任務。如果前一個任務耗時很長,後一個任務就得一直等著。 ;查看原文
去測試一下就知道了啊,每push成功一次列印一下此陣列