2022년 10월 25일
이론JS
조회 : 297|1분 읽기
동기와 비동기
🤔 동기는 뭐고 비동기는 뭘까
동기
한 작업이 실행되는 동안 다른 작업은 멈추고 자신의 차례를 기다린다.
이름에서 보면 동시에 작업하는데 왜 작업을 멈추고 기다리는게 동기인지 했지만 동작과 결과가 동시에 나와야한다는 약속의 의미로 사용한다.
따라서 시간이 얼마나 걸리든 요청에 대한 결과를 내놔야 다음으로 넘어간다.
장점
- 설계가 매우 간단하고 직관적임
- 유지보수 쉬움
단점
- 결과가 나올때까지 대기해야함
console.log("a")
console.log("b")
console.log("c")
출력
/*
a
b
c
*/
비동기
어떤 요청을 보내면 그 요청이 끝날때 까지 기다리지 않고 응답과 관계없이 바로 다음 동작이 실행되는 방식
동작에 대한 결과가 동시에 나오지 않아도 괜찮다.
장점
- 결과가 주어지기 전에 다른 작업을 할 수 있어 자원을 효율적으로 사용가능
단점
- 동기보다 복잡
- 동기보다 많은 비용 발생
javascript1const callback = ()=>{ 2console.log("a"); 3} 4 5setTimeout(callback,3000); 6console.log("b") 7console.log("c") 8 9출력 10/* 11b 12c 13..3초 후 14a 15*/