동기와 비동기

Hyemimi·2022년 5월 5일
0

js

목록 보기
13/18

동기

스레드 : 코드를 한 줄 한 줄 실행시킴
스레드 - 동기방식 처리 : 이전 작업이 진행 중 일 때는 다음 작업을 수행하지 않고 기다린다.
자바스크립트는 싱글 스레드 !


function taskA() {
  console.log("A 작업 끝");
}

taskA();
console.log("코드끝");

// 동기적 방식 

비동기

싱글쓰레드 방식을 이용하면서, 동기적 작업의 단점을 극복하기 위해
여러 개의 작업을 동시에 실행시킴



function taskA() {
  setTimeout(() => {
    console.log("A Task End");
  }, 2000); //2초 뒤 실행
}

taskA(); //먼저 명령했지만 2초 뒤 실행
console.log("코드끝"); //먼저 실행

//코드끝
//A Task End


//비동기적 방식

비동기 + 콜백




function taskA(a, b, cd) {
  setTimeout(() => {
    const res = a + b;
    cd(res);
  }, 3000);
}

taskA(3, 4, (res) => {
  console.log("A Task result : ", res);  //콜백함수 전달
});
console.log("코드끝");

//코드끝
//A Task result : 7


JS Engine : Call stack

가장 나중에 들어온 것이 가장 먼저 제거됨
main context가 제거되는 순간이 프로그램이 종료되는 시점
비동기코드는 Web APIS > Callback Queue > Event Loop > Call Stack 순서로 실행

profile
암냠냠

0개의 댓글

관련 채용 정보