#19. 비동기 프로그래밍(1)

2langk·2021년 3월 23일
0

[오분자스 - 개념편]

목록 보기
19/24

비동기 프로그래밍

이제부터는 비동기 프로그래밍에 대해 설명해보려고 한다.

이전에 자바스크립트는 싱글 스레드지만 비동기 작업을 수행하는 worker 스레드를 지원한다고 언급했던 적이 있다.

1) 메인 스레드
자바스크립트는 코드를 실행하는 메인 스레드가 1개인 싱글스레드 구조를 갖고 있다.
따라서, 동시에 여러 가지 일을 수행할 수 없으며, 한 번에 오직 1가지의 일만 할 수 있다.

2) 동기 작업
해야하는 일이 순서대로 A, B, C 총 3가지 가 있다고 생각해보자. A는 10초, B는 5초, C는 1초가 걸린다.
한 순간에 하나씩 처리한다면 A, B, C가 모두 수행되는데 걸리는 시간은 16초 일 것이다. 이렇게 동작하는 것을 동기적으로 동작한다고 한다.

3) 비동기 작업
위의 상황과 동일하게 A, B ,C 세 가지 일이 있다.
( ... 생 ... 략 ... )

4) worker 스레드
앞에서 말한 비동기 작업이 수행되는 스레드이다.
보통 nodejs는 default로 4개를 가지고 있고 필요에 따라 수를 늘리거나 줄이거나 할 수 있다.


지금까지 메인스레드와 worker 스레드의 차이점과 동기적인 작업과 비동기 작업의 차이점을 알아보았다.
다음 시간에는 자바스크립트에서 비동기적으로 코드를 실행하는 방법 중 하나인 callback에 대해 소개하도록 하겠다.

0개의 댓글