본문 바로가기
CS

Blocking, Non-blocking & Synchronous, Asynchronous

by 열정적인 이찬형 2023. 4. 3.

 

blocking, Non-blocking

 

 

blocking , Non-blocking다른 주체가 작업을 진행할 때 제어권 여부에 따라 구분하게 됩니다.

 

Blocking

작업을 진행 중 호출된 함수가 할 일을 모두 끝낼 때까지 제어권을 소유하고 호출한 함수에게 바로 돌려주지 않는 것

: 작업의 흐름이 막혔다.(Blocking)?  → 제어권이 넘어가버려서...

 

 

Non-Blocking

작업을 진행 중 호출된 함수가 할 일이 끝나지 않아도 제어권호출한 함수에게 바로 돌려주는 것

: 작업의 흐름이 막히지 않았다(Non-Blocking)? → 제어권이 다시 돌아왔다!

 


Synchronous, Asynchronous

 

Sychronous, Asychronous호출되는 함수의 작업 완료 여부를 누가 신경쓰고 있는지에 따라 구분합니다.

 

Sychronous

호출된 함수의 수행 결과 및 종료를 호출한 함수가(호출된 함수뿐 아니라 호출한 함수도 함께) 신경 쓰고 처리하는 것

: 해당 작업을 모두 신경쓰고 있다? → 순서대로 실행된다

 

 

Asychronous

호출된 함수의 수행 결과 및 종료를 호출된 함수만(CallBack) 신경 쓰고 처리하는 것

: 해당 작업을 호출된 함수만 신경쓰고 있다? → 호출된 함수가 완료되는 순서가 달라질 수 있다.


Blocking ~ Non-Blocking ,  Synchronous ~ Asynchronous 조합

 

Blocking & Sychronous

 

[현재 장소 : 식당]
[인원 : 친구1, 친구2]
[친구1 : 밥을 먹는 작업 중]

친구1 : 어이~ 물 좀 떠다줄래?

친구2 : 오케이 ~ 

친구1 : (식사 중지... 친구2가 물을 가져오는 행동을 관찰 중)
=> 다른 일 못하고 대기... 신경은 쓰고 있음

 

Blocking & Asychronous

 

 

[현재 장소 : 식당]
[인원 : 친구1, 친구2]
[친구1 : 밥을 먹는 작업 중]

친구1 : 어이~ 물 좀 떠다줄래?

친구2 : 오케이 ~ 

친구1 : (식사 중지... 물 가져올 때까지 딴 생각중.....)
=>다른 일은 못하고 대기.... 물 떠오는 것 신경도 안 쓰고 있음

 

Non-Blocking & Sychronous

 

[현재 장소 : 식당]
[인원 : 친구1, 친구2]
[친구1 : 밥을 먹는 작업 중]

친구1 : 어이~ 물 좀 떠다줄래?

친구2 : 오케이 ~ 

친구1 : 다른 음식 식사 중.... (중간에) 물 뜨는 중이야?

친구2 : 뜨는 중이야~ 기달려~

친구1 : 물 뜨는 중이야?

친구2 : 뜨는 중이라니까~

친구1 : 물 뜨는 중이야?

친구2 : 뜨는 중!!!!
=>다른 일을 하는 중~.... 신경도 쓰고 있어서 잘 되고 있는지 확인

 

Blocking & Sychronous

 

 

[현재 장소 : 식당]
[인원 : 친구1, 친구2]
[친구1 : 밥을 먹는 작업 중]

친구1 : 어이~ 물 좀 떠다줄래?

친구2 : 오케이 ~ 

친구1 : 다른 음식 식사 중.... 냠냠(물 가져오는거 신경도 안 쓰는 중)

친구2 : 물 떠왔어~(CallBack)

친구1 : 오! 고마워!(반응)... 냠냠 쩝쩝
=>다른 일을 하는 중~.... 물 떠오는 것 신경도 안 쓰고 있음, 물 떠오면(CallBack) 반응

[출처]

Blocking-nonBlocking , Synchronous, Asynchronous

https://musma.github.io/2019/04/17/blocking-and-synchronous.html

http://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/

 

 

※ 잘못된 정보가 있다면 댓글을 남겨주시면 감사하겠습니다.!!!!!

'CS' 카테고리의 다른 글

DB connection Pool  (0) 2023.04.10
HTTP & HTTPS  (0) 2023.03.30
대칭키(비밀키) & 비대칭키(공개키)  (0) 2023.03.23
TCP 3 way handshake & 4 way handshake  (0) 2023.03.21

댓글