다른 주체가 작업할 때 자신의 제어권이 있는지 없는지로 볼 수 있음
결과를 돌려주었을 때 순서와 결과에 관심이 있는지 아닌지로 판단가능
구분 | Blocking | Non-Blocking |
---|---|---|
Sync | Blocking / Sync | Non-Blocking / Sync |
Async | Blocking / Async | Non-Blocking / ASync |
Blocking/Sync : 결과를 반환하면 바로 처리해야 함
Scanner
: 입력할 동안 대기, 입력하면 바로 처리Non-Blocking/Sync : 다른 작업이 있어도 제어권 가지고 일하기 + 결과 중간중간 물어보기
Blocking/Async : 비동기인데 블락킹? 의미가 없으므로 보통 개발자의 실수(Non Blocking/Async 하려다가 실수) 혹은 기타 이유
Non-Blocking/ASync : 다른 작업이 시작되어도 자신이 하던 작업을 멈추지 않음, Async는 결과 바로 처리 x -> 자신의 일이 끝나고 난 뒤 처리
Blocking vs Non-Blocking : 제어의 관점
Sync vs Async : 순서와 결과(처리)의 관점