본문 바로가기

학원/JavaScript

23장. 동기식 처리 모델 vs 비동기식 처리 모델

[ 목차 ]

1. 동기식 처리 모델

2. 비동기식 처리 모델

3. 원리

 

1. 동기식 처리 모델

1) 직렬적으로 태스크를 수행

2) 태스크는 순차적으로 실행되며 어떤 작업이 수행 중이면 다음 작업은 대기

3) 서버에서 데이터를 가져와 화면에 표시하는 작업을 할 때 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후 태스크들은 블로킹

 

2. 비동기식 처리 모델

1) 병렬적으로 태스크를 수행

2) 태스크가 종료되지 않은 상태라 하더라도 대기하지 않고 다음 태스크를 실행

3) 서버에서 데이터를 가져와서 화면에 표시하는 태스크를 수행할 때 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고 즉시 다음 태스크를 수행

4) 서버로부터 데이터가 응답되면 이벤트가 발생하고 이벤트 핸들러가 데이터를 가지고 수행할 테스크를 계속해 수행

 

3. 원리

1) func1이 호출되면 func1은 Call Stack에 쌓임

2) func1은 함수 func2를 호출하며 func2가 Call Stack에 쌓이고 setTimeout가 호출

3) setTimeout의 콜백함수는 즉시 실행되지 않고 지정 대 시간만큼 기다리다가 tick 이벤트가 발생하면 태스크 큐로 이동한 후 Call Stack이 비어졌을 때 Call Stack으로 이동되어 실행

'학원 > JavaScript' 카테고리의 다른 글

25장. 비동기식 처리 모델과 Ajax  (0) 2020.04.13
24장. 이벤트  (0) 2020.04.13
22장. 문서 객체 모델  (0) 2020.04.10
<문자열을 JavaScript Object로 변환하는 방법>  (0) 2020.04.09
21장. 배열  (0) 2020.04.09