2013-08-17 2 views
0

배열을 사용하여 연결된 클라이언트 목록을 저장하고 있습니다.Array.for 각 스레드 안전

클라이언트 목록을 반복 할 때마다 : clients.forEach(...).

제 질문은 clients.forEach(...) 문에서 클라이언트가 연결을 끊을 때 (따라서 clients에서 제거되는 경우) 무엇이 안전한 지 여부입니다.

답변

1

짧은 대답은 예입니다.

forEach는 동기 프로세스입니다. 즉, 프로세스가 배열의 forEach 루프 실행을 완료 할 때까지 배열이 수정되지 않습니다. Are nodejs data-structures thread-safe by design?

+2

짧은 대답은 사실이지만, 추론은 잘못된 것입니다 :

이 독서에서 나의 이해이다. .forEach는 동기식이므로 다른 코드가 동시에 실행되지 않습니다. –

+0

네 말이 맞아, 나는 대답을 수정했다. – Trendy

+0

Node.js는 단일 스레드이므로 스레드 문제는 대개 무시할 수 있음을 언급해야합니다. – Mallox