2013-08-17 4 views
0

Я использую массив для хранения списка подключенных клиентов.Array.forEach thread security

Всякий раз, когда я хочу перебирать список клиентов, я делаю: clients.forEach(...).

Вопрос в том, является ли этот поток безопасным, как если клиент отсоединяется (и поэтому удаляется с clients) во время инструкции clients.forEach(...)?

ответ

1

Короткий ответ: да.

forEach - это синхронный процесс, означающий, что массив не будет изменен до тех пор, пока процесс не завершит выполнение цикла forEach в массиве.

Это мое понимание от чтения: Are nodejs data-structures thread-safe by design?

+2

Хотя короткий ответ верно, рассуждение неправильно. .forEach является синхронным и, таким образом, другой код не работает одновременно. –

+0

Вы правы, я исправил ответ. – Trendy

+0

Вы также должны указать, что Node.js является однопоточным, поэтому проблемы с потоками обычно можно игнорировать. – Mallox

Смежные вопросы