예 자바 스크립트에서 공식적인 메모리 모델을 요구하는 것은 희망이 없으므로 "모든 브라우저는이 규칙을 따르십시오"라고 생각합니다.자바 스크립트 메모리 모델
내 문제는 다음이다 : 나는 서버에 정의 된 간격으로 이벤트를 전송해야하지만, 그렇게하는 동안 이벤트 내 배열에 추가 할 수 있습니다 예 : 명백한 경쟁 조건에서 거기
function storeEvent(event) {
// may be called at any time
storedEvents.push(event);
}
function broadcastEvents() {
if (storedEvents.length !== 0) {
var eventString = JSON.stringify(storedEvents);
storedEvents = [];
// send eventString to server
}
window.setTimeout(broadcastEvents, BROADCAST_TIMER);
}
거기에는 기억 장벽이 없다고 생각조차하지 않습니다.
무엇을 할까? 여기에 자바 메모리 모델이 정말 없습니다.
javascript의 기능에 대한 간략한 설명은 [이 게시물] (http://stackoverflow.com/questions/7575589/how-does-javascript-handle-ajax-responses-in-the-background/7575649#7575649)을 참조하십시오. 이벤트 대기열이 작동하며 왜 이것이 경쟁 조건이 아닌지를 나타냅니다. – jfriend00
@ jfriend00 감사합니다. 그래서 기본적으로 재진입없이 구현을 펌핑하는 일반적인 메시지입니다. "그것이 하나의 스레드"와는 별개로 중요하지 않더라도 알 수 있습니다. :) – Voo
예, 설명하는 좋은 방법입니다. – jfriend00