N이 논블로킹이 아니라는데 무슨 차이인지 몰?루
[일반] BIO와 NIO의 차이가 뭐야?
익명(118.235)
2024-09-08 13:03
추천 0
댓글 14
다른 게시글
-
의존성주입이 [7][일반] 익명(14.35) | 24.09.08추천 0
-
재밌는 떡밥 없냐 [2][일반] 웃스음(112.168) | 24.09.08추천 0
-
STS 아다 떄려는데 이거 이클립스 버전밖에 없음 ? [2][일반] 익명(112.166) | 24.09.08추천 0
-
회사다녀도 CS 는 걍 꾸준히 파야함 [2][일반] 익명(119.194) | 24.09.08추천 5
-
인텔리제이 System.println 이거 콘솔창 [2][일반] 익명(14.35) | 24.09.08추천 0
-
오토에버 연봉 테이블 이거 맞냐? [19][일반] 김대기(waitkim) | 24.09.08추천 0
-
오토에버 돈 많이 안줌? [6][일반] 익명(180.71) | 24.09.08추천 0
-
네카라와 배당토가 신입에게 원하는 포폴은 조금 다른거같음 [18][일반] 익명(122.254) | 24.09.08추천 4
-
백엔드 코테 파이썬 못쓰게하는곳 실제로 좀 있나[일반] 익명(118.235) | 24.09.08추천 0
-
자료구조, 알고리즘 c로 하는놈들은 뭐임 대체?? [11][질문] 익명(112.170) | 24.09.08추천 1
동기 비동기 차이 아닐까 싶은데 블록킹 io는 입출력 요청을 보내면 응답이 올때까지 대기하는데 논블록킹은 입출력 요청을 보내놓고 응답이 올때까지 다른 작업을 처리하다가 응답이 오면 응답에 대한 처리를 하는게 아닐까 함
그냥 기존 i/o 가 os 영역 직접 접근이 불가능하니까 데이터를 복사해야되고 복사할때마다 스레드 블로킹일어나니까 이거 단점 보완할거없을까? 해서 나온게 new io 임. 논블로킹도 그냥 new io 에서 적용된 기술중 일환이고 이부분도 깊이 말하면 한도끝도 없으니까 결국 cs 와 네트워크를 깊게 공부해야함
톰캣 물어본건데 왜 자바 new io 설명이 ㅠㅠ
톰캣이 java nio를 사용해서 NIO패키지를 만들었으니까여 ㅎㅎ
bio는 커넥션부터 처리까지 전부 다 워커 스레드가 하고 nio는 커넥션 및 헤더 읽기까지는 논블로킹으로 소수의 acceptor가 처리하고 body 읽기와 처리 및 응답은 워커 스레드가 처리함
와 대기님 설명 너무 좋은데여 ..
nio도 결국 body 처리는 블로킹이란 소리임 bio에 비해 많은 연결을 수용할 수 있지만, 동시 처리는 안되는거지 netty같은거랑 비교하면 좀 다름
이거 차이 이해하느라 꽤 고생했었는데 주딱은 다르네
nio에서 응답의 네트워크 io 자체도 워커스레드가 처리하는지는 기억이 좀 애매함
응답은 아마 selector channel로 처리하는걸로 기억합니다 워커가 응답 가져오고 channel이 알리는식이었던걸로
음.. 근데 응답 크기가 크면 쓰기 완료될때까지 스레드 점유됐던 것 같음 채널에 직통으로 연결해주는 기능이 있었나
버퍼 크기를 넘어서면 워커스레드 점유
네티랑은 뭐가 달라요??
netty는 완전 논블로킹이라서, body 처리 및 응답을 할때 전체 과정을 1개 스레드가 처리하는 식으로 고정돼있지 않음(1개 스레드가 처리하는게 최적이면 1개 스레드가 처리함) a 요청의 a-1은 a스레드가, a-2는 b스레드가, a-3은 c스레드가 하는 식으로