2010-06-30 5 views
2

자바에서 객체/메소드를 동기화 할 수있는 방법과 비슷한 방법으로 JavaScript에서 객체/메소드를 동기화하는 방법이 있는지 궁금합니다. html5에 새로운 WebSocket을위한 인터페이스를 개발하고 들어오는 응답과 나가는 요청을 일치시키는 방법이 필요합니다. 따라서 클라이언트 측의 배열에 요청 (고유 ID 포함)을 저장하고 일치하는 요청을 찾는 응답을 받으면 배열을 반복합니다.배열을 자바 스크립트와 동기화하십시오.

클라이언트 측에서 발생할 수있는 문제는 서로 독립적으로 서버에 요청하는 타이머가 여러 개있는 경우입니다. 요청 함수가 응답 리스너가 배열을 반복하는 것과 동시에 요청에 "요청 참조"를 삽입하는 경우 중단되어야합니다.

어떻게이 문제를 해결할 수 있습니까? 필자의 초기 생각은 단순히 자바에서 할 수있는 것처럼 배열을 동기화하는 것이었다. (객체에 락을 걸고 다른 함수를 기다려야 만한다.) 그러나 JavaScript에서 어떻게 할 것인지에 대한 문법을 ​​발견하지 못했다.

답변

3

자바 스크립트는 브라우저의 단일 스레드에서 실행되므로 동기화 할 필요가 없습니다.

자세한 내용은 here을 참조하십시오. this 질문과 대답도 참고하십시오 (JavaScript가 멀티 스레딩을 지원하지 않는 이유는 무엇입니까?).

+1

근로자를 사용하지 않는 한 https://developer.mozilla.org/en/Using_web_workers를 참조하십시오. 그렇지만 코드에서 문제를 일으키기 위해 열심히 노력해야합니다. – Redlab