2번째 이유는 비동기 통신을 하기 위해서이다.(순서에 상관없이 작업)
예를 들어
1.화면에 그리기/ cpu작업
2.연산/ cpu
3.다운로드 - 도라에몽 그림(외장)/ 기억장치+저장장치
ㄴ비동기 처리 (저장장치에게 책임을 넘김)
4.도라에몽 그림 그리기/ cpu
ㄴ저장장치에게 다운이 다 된다면 알려주라함, 5번먼저 실행,
5.화면에 그림그리기(내장)/ cpu
와 같은 로직이 있을 때
하던일을 멈추고 돌아가는걸 callback,
1-2-3/5 -4 순서로 진행된다. 그렇다면 cpu는 기억장치의 3번작업을 기다리지 않고 먼저 5번을 수행하다가, 기억장치의 3번작업이 끝나면 4번을 시행하는 곳으로 callback하면 되는 것이다. 이로서 시간을 절약할 수 있다.