[Javascript] 동기와 비동기
2024. 5. 23. 09:09ㆍJavascript
728x90
프로세스 내에서 실행되는 흐름의 단위를 스레드라 함
동기적 처리
여러개의 작업을 순서대로 한 번에 한 개씩 처리하는 것
단점: 작업 중간에 있는 하나의 작업이 너무 길때 스레드는 끝날 때까지 다음 작업으로 넘어갈 수 없어 전체 성능이 악화
→ 보완하기 위해 멀티쓰레드 기법 사용
여러개의 스레드로 각 작업이 실행되기 때문에 한 개가 오래 걸려도 전체 프로그램 성능에 큰 영향을 안 줌
그럼 비동기 처리는 왜 배움?
자바스크립트 엔진에는 스레드가 1개만 존재 →멀티스레드 기법이 불가능
→ 보완하기 위해 비동기처리 사용
자바스크립트는 기본적으로 동기적 처리
console.log(1);
console.log(3);
→ 결괏값
1
3
비동기적 처리
여러 개의 작업을 순서대로 처리하지 않음, 기다리지 않고 다른 작업 동시에 처리
자바스크립트 스레드 1개라면서 어떻게 비동기가 가능?
→ 비동기 작업은 자바스크립트 엔진에서 실행 X → Web APls(웹 브라우저가 직접 관리하는 별도의 영역)에서 실행
setTimeout(() => {}, 특정시간(초))
사용해서 비동기 처리 가능
console.log(1);
setTimeout(() => { console.log(20); }, 5000);
console.log(3);
→ 결괏값
1
3
20 → 실제 콘솔 보면 1,3 먼저 출력되고 5초 후에 20 출력
728x90
'Javascript' 카테고리의 다른 글
[Javascript] 비동기 처리 promise (0) | 2024.05.25 |
---|---|
[Javascript] 비동기처리 콜백함수 간단한 예시 (0) | 2024.05.24 |
[Javascript] Date 객체 (0) | 2024.05.22 |
[Javascript] 배열 변형 메서드 (0) | 2024.05.21 |
[Javascript] 배열요소 순회 및 탐색 메서드 (0) | 2024.05.20 |