면접 - 자바

개발자 면접 질문 - Blocking(블로킹) / Non-Blocking (논 블로킹)

snow-line 2020. 12. 3. 19:58
반응형

1. 블로킹 (Blocking)

 - 호출된 함수가 자신의 작업을 모두 끝낼때까지 제어권을 가지고 있어 호출한 함수가 대기하도록 만든다.

 - 클라이언트가 I/O 작업을 진행하면 해당 프로세스가 진행하는 작업이 중지된다.

 - 다른 클라이언트에 영향을 미치지 않게 하기 위해 클라이언트 별로 쓰레드를 만들어야 한다.

 - 쓰레드가 많이질수록 CPU의 컨텍스트 스위칭 횟수가 증가한다.

 - 쓰레드가 요청한 동작이 수행 가능해질 때 까지 대기한다.

 

2. 논블로킹 (Non-Blocking)

 - 호출된 함수가 바로 return 해서 호출한 함수에게 제어권을 주어 다른 일을 할 수 있게 한다.

 - Blocking 방식의 비효율성을 극복하고자 만든 것이다.

 - 클라이언트가 I/O 작업을 진행해도 유저 프로세스의 작업을 중단시키지 않는다.

 - 요청된 동작이 현재 수행 불가능하다는 사실을 쓰레드에게 알린다.

반응형