<2023.6.12>
(1) 동기 (Synchronous)
-> 먼저 실행된 코드의 결과가 나올때까지 대기하는 것을 말함.
(2) 비동기(Asynchronous)
-> 실행된 순서와 관계 없이 결과가 나오는 것을 말함.
(1) Blocking Model
-> 코드의 실행이 끝나기 전까지 실행 제어권을 다른곳에 넘기지 않아 다른 작업을 하지 못하고 대기하는 것.
(2) Non-Blocking Model
-> 코드의 실행이 끝나지 않아도 실행 제어권을 다른곳에 넘겨 다음 코드가 실행될 수 있게하는 것.
= 자바스크립트는 Async + Non-Blocking Model을 채용하여 현재 실행중인 코드의 실행이 끝나지 않아도 다음 코드를 호출.
자바스크립트는 각 명령들의 순서대로 실행될 수 있게 구현되어 있지만, Non-Blocking Model에 의해 동기적 명령이 아닌 모든 함수는 비동기적으로 실행됨.
코드를 입력하세요
동기, 비동기와의 차이점?
setTimeOut
은 특정 시간 뒤에 함수를 실행해주는 역할.
setTimeout(first, 1000)
: 1초 뒤에 first()
함수 → console.log(’First’);
가 실행되도록 명령합니다.console.log('Middle');
: ‘Middle’ 문자열이 출력됩니다.console.log('Last');
: ‘Last’ 문자열이 출력됩니다.First()
함수를 먼저 실행하여 'First'를 출력한 뒤, 'Middle', 'Last'순으로 출력.