반응형
1. 블로킹 (Blocking)
- 호출된 함수가 자신의 작업을 모두 끝낼때까지 제어권을 가지고 있어 호출한 함수가 대기하도록 만든다.
- 클라이언트가 I/O 작업을 진행하면 해당 프로세스가 진행하는 작업이 중지된다.
- 다른 클라이언트에 영향을 미치지 않게 하기 위해 클라이언트 별로 쓰레드를 만들어야 한다.
- 쓰레드가 많이질수록 CPU의 컨텍스트 스위칭 횟수가 증가한다.
- 쓰레드가 요청한 동작이 수행 가능해질 때 까지 대기한다.
2. 논블로킹 (Non-Blocking)
- 호출된 함수가 바로 return 해서 호출한 함수에게 제어권을 주어 다른 일을 할 수 있게 한다.
- Blocking 방식의 비효율성을 극복하고자 만든 것이다.
- 클라이언트가 I/O 작업을 진행해도 유저 프로세스의 작업을 중단시키지 않는다.
- 요청된 동작이 현재 수행 불가능하다는 사실을 쓰레드에게 알린다.
반응형
'면접 - 자바' 카테고리의 다른 글
개발자 면접 질문 - 클래스 로더(ClassLoader) (0) | 2020.12.03 |
---|---|
개발자 면접 질문 - public static void main 의미 (0) | 2020.12.03 |
개발자 면접 질문 - 동적 프로그래밍(Dynimic Programming) (0) | 2020.12.03 |
개발자 면접 질문 - IO와 NIO (0) | 2020.12.03 |
개발자 면접 질문 - 메모리 누수 확인 방법 (0) | 2020.12.03 |