본문 바로가기
기타

blocking vs non-blocking, sync vs async

by 개발자종혁 2021. 11. 11.
728x90

1. blocking/ non-blocking :

- 기준 : 제어권

blocking: 다른 주체가 작업할 때 자신의 작업을 할 수 없다.

non blocking :다른 주체가 작업을 할 때, 자신의 작업을 할 수 있다.

2. sync vs async 

- 기준 : 순서/ 결과의 처리

synchronous : 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함

asynchrounous : 비동기 - 시작, 종료가 일치하지 않으며, 끝나는 동시에 시작하지 않음.

 

3. 조합 종류

  blocking non-blocking
sync blocking/ sync non-blocking /sync
async blocking/async non-blocking/async

 

1) blocking / sync

- blocking: 어떤 일을 처리할 때, 먼저하고 있는 작업을 다 할 때까지 대기

- 동기: 그 결과를 전달 받으면 바로 다음 일 처리

- 사용 예 : java에서 입력 처리

 

2. non-blocking / sync

- non-blocking: 어떤 작업을 처리 할때, 이미하고 있는 작업이 있더라도 작업 같이 처리 가능.

- 동기: 결과가 완료 되었는지 확인, 결과가 끝나지 않은 상태면 돌아가서 다른 업무를 수행

- 사용 예: 게임에서 로드 정도를 보여주는 것

 

3. blocking / async

- blocking: 어떤 일을 처리할 때, 먼저하고 있는 작업을 다 할 때까지 대기

- 비동기: 결과를 바로 처리하지 않아도 됨

- 예: non-blocking/ async 조합을 쓰려다가 개발자의 실수로 사용되는 경우

 

4. non-blocking/ async

- non-blocking: 어떤 작업을 처리 할때, 이미하고 있는 작업이 있더라도 작업 같이 처리 가능.

- 비동기: 결과를 바로 처리하지 않아도 됨

- 사용: javascript에서 api요청 후 callback을 통해 추가적 작업을 할때

[10분 테코톡] 🐰 멍토의 Blocking vs Non-Blocking, Sync vs Async - YouTube

728x90

댓글