스터디 - Blocking/Non-blocking io

정상화·2023년 4월 26일
0

스터디

목록 보기
7/10

Blocking

OS가 작업을 끝낼 때까지 유저프로세스가 작업을 하지않고 대기하는 것

None-Blocking

OS에 작업을 부탁하고 유저프로세스는 다른 작업을 하는 것

블로킹과의 차이


작업 처리전에 대기의 유무에 차이가 있다.
블로킹 작업은 순차적으로 작업이 처리되기 때문에 "동기처리"라고도 한다.

작업간의 처리 순서가 유지되어야 하기 때문에 대기시간이 반드시 발생하게 된다.

비동기와의 차이


비동기 처리란 작업을 동기화하지 않고 처리하는 것을 말한다.

논블로킹도 동기화하지 않고 작업을 처리하기 때문에 넓은 의미에서 보면 비동기처리라고 볼수 있으나, 작업완료를 응답유무에서 차이가 있다.

비동기처리는 동기처리와는 다르게 작업이 끝나면 끝났다고 응답이 온다. (동기처리는 유저프로세스가 작업이 끝났냐고 물어본다.)

논블로킹은 작업완료에 대한 응답은 없고, 처리가 완료되지 못할 경우 에러를 받게 된다.


profile
백엔드 희망

4개의 댓글

comment-user-thumbnail
2023년 4월 27일

잘 정리되어서 이해하기 좋았습니다!

답글 달기
comment-user-thumbnail
2023년 4월 27일

짧고 간결하게 차이점 위주로 설명을 해주셔서 좋았습니다.

답글 달기
comment-user-thumbnail
2023년 4월 27일

차이점을 확실히 알 수 있어서 좋았습니다!

답글 달기
comment-user-thumbnail
2023년 4월 27일

차이점을 간결하게 알 수 있었습니다.

답글 달기