js에서 모든 함수의 실행이 이벤트 루프의 단일 스레드에 대한 "원자 연산"이라고 말할 수 있습니까? 한 번에 2 개 이상의 기능을 실행할 수 없음을 의미합니다.
간단한 대답은 사실이 아니라는 것입니다. setTimeout
또는 XmlHttpRequest.onreadystatechange
등에 전달 된 함수에 대해 생각해보십시오 . 이러한 함수는 미래 의 특정 또는 결정되지 않은 시간에 실행될 것 입니다. setTimeout이 시작될 때 함수가 이미 실행 중이거나 준비 상태 변경 이벤트가 발생하면 해당 함수는 setTimeout 또는 준비 상태 핸들러 통계가 실행되기 전에 완료 될 때까지 기다리지 않습니다.
대신 인터프리터가 동시에 두 개 이상의 함수를 실행할 수 있습니다. 동시에 실행되는 것처럼 보이지만 기술적으로는 그렇지 않습니다.
첫 번째 함수 실행이 일시 중지되고 (명령이 완료된 후 다음이 시작되기 전에) 다른 함수의 명령이 일정 시간 동안 실행됩니다. 그런 다음이 함수 실행이 일시 중지되고 이전에 일시 중지 된 것이 다시 시작됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다