var i=0
async function a(){
i
}
a();
上面的代碼可以安全運行嗎?即使 Javascript 是單執行緒的,尤其是在 read modify write 操作期間,另一個作業執行緒可以在 async 函式中操作相同的操作。
uj5u.com熱心網友回復:
呼叫async函式時,它會同步運行,直到await函式內部發生。請參閱https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#description
i 因此,如果它發生在函式中的任何await陳述句之前,您可以依賴同步發生。
正如您的問題所承認的那樣,Javascript 是單執行緒的(除非您使用網路作業者,但它們是相互隔離的)。
如果您想確保兩個不同的異步方法在修改共享變數時不會相互交錯,請使用某種信號量。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/532705.html
上一篇:為什么結果不同逐個回圈添加執行緒
