Javascript - 동기/비동기

김용진·2022년 4월 29일
0

Javascript

목록 보기
3/5

동기식 처리 모델(Synchronous processing model)

동기식 처리 모델에서는 작업을 직렬적으로 수행하고, 따라서 중간에 다른 작업이 끼어들게 될 경우, 그 이후 task들은 하염없이 기다려야 한다. 이렇게 기다릴 때 작업이 멈추는 현상을 블로킹(blocking)이라 한다.

비동기식 처리 모델(Asynchronous processing model, Non-Blocking processing model)

비동기식 처리 모델에서는 작업을 병렬적으로 수행하고, 중간에 끼어든 task가 종료되지 않아도 기다리지 않고 동시에 다음 task를 수행한다.

ex) DOM 이벤트 핸들러, Timer함수(setTimeout, setInterval), Ajax요청 등

나는 처음에 '동기', '비동기'라는 용어가 헷갈렸었다. 하지만 한자로 이해해보면 쉽다.

동기: 같은 주기 안에서 일어나는 일
비동기: 같은 주기 않에서 일어나지 않는 일

동기식 처리 모델에서는, 하나의 주기 안에서 task들이 일어나기 때문에 중간에 다른 task가 끼어들면 다음 task들은 돌아갈 방법 없이 뒤로 밀려난다. 한줄서기라고 생각하자.

비동기식 처리 모델은 줄이 하나가 아니다! 같은 주기 안에서 하염없이 기다릴 필요가 없기 때문에, 아무리 앞에서 새치기를 당해도 다른줄로 옮겨서 바로 작업을 수행할 수 있다.

profile
기획/개발/디자인 다 하고싶은 프론트엔드 개발자

0개의 댓글