2013-08-17 110 views
0

我正在使用數組來存儲連接的客戶端列表。Array.forEach線程安全

每當我想遍歷客戶端列表時,我都這樣做:clients.forEach(...)

我的問題是,這是線程安全的,因爲如果客戶在clients.forEach(...)聲明期間斷開連接(因此從clients中刪除),該怎麼辦?

回答

1

簡短回答是肯定的。

forEach是一個同步過程,這意味着只有在過程完成對數組執行forEach循環之後,纔會修改該數組。

這是閱讀我的理解: Are nodejs data-structures thread-safe by design?

+2

雖然簡單的答案是真的,推理是錯誤的。 .forEach是同步的,因此沒有其他代碼正在同時運行。 –

+0

你說得對,我確定了答案。 – Trendy

+0

您還應該提到Node.js是單線程的,因此線程問題通常可以忽略。 – Mallox