sync, async

목표


동기/비동기 방식 처리의 개념에 대해 알아본다.

동기/비동기


동기방식: 한 스레드 내 선행 작업이 진행중인 동안 다음 작업은 수행하지 않음(블로킹 방식)

자바스크립트의 경우 싱글 스레드 동기방식으로 처리함

단점: 한 작업이 너무 오래걸릴 경우 전체 작업이 종료되는 시간이 길어지므로 느려진다.

⇒웹사이트에서는 절대 일어나서는 안되는 일

멀티스레드(여러 스레드)를 사용할 경우 작업을 분할할 수 있지만, 자바스크립트는 스레드를 한 개만 사용한다. 따라서 비동기(async) 방식을 사용해야한다.

비동기방식: 먼저 작성된 코드를 기다리지 않고 여러 작업을 동시에 실행함(논 블로킹 방식)

비동기 방식 예제


timer 비동기 처리함수 setTimeout()을 사용해보자.

<aside> 💡 setTimeout(처리할 함수, 지연시간(milliseconds))

</aside>

다음 코드를 살펴보자.

function taskA() {
  setTimeout(() => {
    console.log("A task ended");
  }, 1000);
}

taskA();
console.log("code ended");

출력 화면