宣告一個空數(shù)組,開四個行程同時給數(shù)組中push值,這個push進(jìn)去的順序是怎麼樣的?
簡單實(shí)驗(yàn)了以下,多個進(jìn)程(任務(wù))操作時,數(shù)組的值取決於最後一個的進(jìn)程。我使用 2個 setTimeout
和 1個setInterval
同時操作一個數(shù)組,並分別 push
進(jìn) 1、2、3 三個值,最後得到的結(jié)果是:
[1, 2, 3, 3, 1, 1, 3, 1, 1, 3]
在 阮一峰 大神的文章中有明確的解釋:單線程就意味著,所有任務(wù)需要排隊(duì),前一個任務(wù)結(jié)束,才會執(zhí)行後一個任務(wù)。如果前一個任務(wù)耗時很長,後一個任務(wù)就得一直等著。 ;查看原文