簡單考慮下,基本類似于隊列模型,再簡單點就是死循環,循環獲取隊列中任務,無任務進行內核態進行休眠,有任務則獲取任務并執行任務。
性能開銷:
1、隊列鎖開銷,如果優化為無鎖隊列會有提升。
2、某些情況下需要用多隊列,則開銷按情況翻倍。
3、js庫開銷,主要為Promise實現相關開銷。
4、如果使用async、await,則看其實現開銷,理論上僅僅是語法糖,內部使用Promise、Generator實現,因此涉及到生成器迭代相關開銷。
普通的異步性能損失可以忽略,可以認為是進入下個循環周期再執行而已。