비동기1 [Javascript] JS Engine 의 비동기를 처리하는 방법 일단 자바스트립트는 싱글스레드의 Non Blocking 방식으로 일을 처리한다. 이때의 단점은, 스레드가 오래걸리는 작업을 시작하면 다른 작업은 모두 Blocking 된다. 그래서 비동기 함수를 통해 동시처리를 할 수 있게 해준다. 그렇다면, JS Engine 에서 비동기를 처리하는 방식은 ? JS Engine 은 순차적으로 실행되어야 할 함수를 Call Stack 에 담고, 순차적으로 (동기적으로 이전 작업이 끝나길 기다리면서) 실행한다. 이때 Call Stack에 비동기 함수가 들어오게 되면, Web APIs 로 넘겨버린다. setTimeout() 함수가 Call Stack에 머무르지 않기 때문에 바로 다음 함수가 실행될 수 있게 된다. Web APIs 에서 setTimeout() 함수 실행이 끝나면.. 2022. 12. 16. 이전 1 다음