[NIO]TCP 비동기/블로킹/넌블로킹의 차이
2017. 1. 5. 23:12 - 개발 새발
TCP 블로킹
서버의 리소스(CPU, 메모리)가 충분해서 많은 각각의 요청을 각각의 스레드로 처리할 경우 개별 스레드에서 요청을 처리하므로 하나의 요청 처리 시간이 오래 걸리더라도 다른 요청 처리에 문제가 없습니다.
스레드풀의 용량이 큽니다.
TCP 넌블로킹
서버의 리소스(CPU, 메모리)가 충분하지 않아 다중 요청을 하나의 스레드로 처리할 경우 하나의 스레드에서 처리하므로 개별 요청 처리 시간이 짧은 경우에만 사용하는 것이 좋습니다.
만약 스레드가 문제가 생기면 다른 요청 처리를 못합니다.
TCP 비동기
서버의 리소스(CPU,메모리)가 보통이여서 다중 요청을 제한된 스레드로 처리할 경우 스레드풀의 용량이 적으면서 효과적으로 다중 요청을 처리하기 위해 사용합니다.
요청 수가 적을 경우 낮은 서버 사양으로 효율적으로 처리하지만, 요청 수가 많거나 요청 처리 시간이 길 경우 블로킹보다 응답 성능이 좋지 않습니다.
- 신용권 선생님 (이것이 자바다 - 저자)
'코딩 > Java' 카테고리의 다른 글
[JAVA] 비동기 채널 API (0) | 2017.01.13 |
---|---|
[JavaFX] ComboBox, RadioButton (0) | 2017.01.12 |
[NIO]TCP 비동기 채널 - 비동기 소켓 채널 (0) | 2017.01.05 |
[NIO]TCP 비동기 채널 - 비동기 서버소켓 채널 (0) | 2017.01.05 |
[NIO]TCP 비동기 채널? (0) | 2017.01.05 |