- 갑이 코드 진행중임
- 동기적으로 안해도 되는 메서드가 있음
- 이 메서드 을 스레드에 시킴
- 이때 콜백 함수도 준다. 을한테 하라고. 원래 갑이 을에게 준 메서드 산출물 받아서 해야되는건데 짬때림
- 갑은 이제 마이웨이로 쭉간다
그로킹 왈
- 입출력 요청은 즉각 반환되지만, 연산이 시작됬다는것만 알려줌.
- 입출력 연산이 완료될때까지 애플리케이션은 다른 작업 실행
- 응답이 도착하면 신호 또는 콜백 호출해 입출력 연산 완료함
- 흥미로운건
- 사용자 관점에서는 블로킹이나 대기가 발생 안함
- 연산 전체가 다른 곳(운영체제 혹은 장치)로 이동하기 때문.
- 따라서, 입출력 연산이 백그라운드에서 동작하는 동안 그만큼 프로세서 시간 절약 가능
- 당연히 고성능 입출력 연산에서도 잘 동작
- 이 모델의 입출력 연산은 운영체제 내부의 저수준 연산만을 가리킴
- 그래서 추상화 계층 위에 있는 개바자의 관점에서는 애플리케이션 프레임워크가 백그라운드 스레드 통한 동기적 블로킹 연산과 콜백을 사용하는 비동기적 인터페이스 모두 제공 가능