• 갑이 코드 진행중임
  • 동기적으로 안해도 되는 메서드가 있음
  • 이 메서드 을 스레드에 시킴
    • 이때 콜백 함수도 준다. 을한테 하라고. 원래 갑이 을에게 준 메서드 산출물 받아서 해야되는건데 짬때림
  • 갑은 이제 마이웨이로 쭉간다

그로킹 왈

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