TIL 21.1.11

21/1/11 TIL

Asynchronous vs Synchronous & Blocking vs Non - Blocking

Asynchronous, Synchronous, Blocking, Non - Blocking 정의

Asynchronous: 호출된 함수의 리턴 시간(e.g. Handler를 등록하는 시간, os.register(handler))결과를 반환하는 시간(e.g. handler 함수가 return 되는 시간)이 일치하지 않는 경우

Synchronous: 호출된 함수의 리턴 시간과 결과를 반환하는 시간이 일치하는 경우

Blocking: 직접 제어할 수 없는 대사으이 작업이 끝날 때까지 기다려야 하는 경우
Non-Blocking: 직접 제어할 수 없는 대상의 작업이 완료되기 전에 제어권을 넘겨주는 경우

참조: https://velog.io/@codemcd/Sync-VS-Async-Blocking-VS-Non-Blocking-sak6d01fhx

위 글의 정의에 따르면 결국 handler를 쓰는 패턴은 주로 async하다고 할 수 있다.(조금 위험할 수 있는 말이지만 Asynchronous를 위와 같이 정의한다면 이렇게 주장할 수 있다.)

예시

void mouseHandler(mouseEvent):
    # mouse를 움직여라....
    
os.register(mouseEvent, mouseHandler)

좋은 웹페이지 즐겨찾기