serversim
학습시뮬레이터템플릿가격
…
…
메뉴 열기
학습↗시뮬레이터↗템플릿↗가격↗
내 Documents문서
전체 목차/2장/2.610 / 40

2.6 · 프로세스와 동시성

동기와 비동기는 무엇이 다를까?

결과를 지금 받는 것과 나중에 통보받는 것은 어떤 차이를 만들까요?

동기·비동기는 기다리는 동안 스레드가 쉬는지보다 결과를 전달하는 계약에 관한 말입니다.

먼저 생활 비유

전화와 이메일

전화는 대화가 끝나야 다음 문장을 이어가기 쉽고, 이메일은 보내고 다른 일을 하다가 답장을 받습니다.

컴퓨터 예제로 바꾸기

사용자 정보 조회

user = getUser(id);
getUser(id, onUser);

첫 줄은 반환값으로 결과를 받습니다. 둘째는 나중에 onUser로 결과를 받습니다.

직접 움직여 보기1 / 5

지금 일어나는 변화

동기 요청

호출과 결과 반환이 한 흐름에 이어집니다.

실행권과 상태실행 · CPU 차례대기 · 메모리 · 운영 체제동기 요청단계 1결과 반환단계 2비동기 등록단계 3다른 일단계 4나중에 통보단계 5조회 결과현재: 동기 요청

이 그림에서 기억할 한 문장

동기는 반환으로, 비동기는 미래의 통보로 결과를 받는 계약입니다.

현재 상태

이동하는 것
조회 결과
현재 위치
동기 요청
다음 위치
결과 반환

30초 확인 문제

비동기의 핵심 설명으로 알맞은 것은?

처음 보는 용어 두 개

동기
호출의 반환 흐름에서 결과를 받는 방식
비동기
호출과 분리된 미래 시점에 결과를 받는 방식

이 절을 다 읽었다면

동기는 반환으로, 비동기는 미래의 통보로 결과를 받는 계약입니다.

← 이전 절

2.5 콜백 함수는 왜 필요할까?

다음 절 →

2.7 블로킹과 논블로킹은 무엇이 다를까?