nio2는 무거워서
비동기 모델 중에서 nio2가 이쩌. 싱글 스레드 풀에서 작동한다면 가벼울 수도 있는 거인데 컴퓨터 자원을 최소로 사용하여야 하는 사용자 어플이면 다른 관점으로 보아야 하는 여지가 커요. 핵심은 싱글 스레드에서 많은 소켓을 물고 있는 거인데 사실 nio2는 안드로이드 api 레벨 26부터 지원하여서 안드로이드 8 이상 이어야 하여서 이전 버전에 대응이 필요해요.
(위에 안드로이드 api 레벨)
사실 안드로이드는 리눅스 기반이고 리눅스는 특별한 업데이트에 커널을 갈아야 하는 경우가 많았기에 .. 구글은 하찮이도 그럼 버전은 바꾸지 말아라는 하남자에 결정을 하고 말아쩌. 아마 이러고 나서 구글 개발자가 엥간이 해고되었을 거여요. 시스템 개발이 어려운 거에는 동의하지만 돈이 차고 넘치는 회사에서 못하겠다 이럼 쓰나요.
댔쩌. 사실 nio도 비동기 처리를 목적으로 하여서 논블로킹과 비동기 완료 시그널을 주는데 이럼 윈도에서 iocp 모델처럼 작동하는 거이고 처리 중에는 panding 상태로 곂쓰기를 치는 거로 어플이 터짐으로 완료 시그널을 분명이 받아야 해요.
iocp는 지정한 키를 피드백 받아서 switch 문을 태울 수 있는데 자바는 isConnectable isReadable 모든 상태에 검사를 .. 설계가 터진거 머나요. 사실 내부 구현은 readyOps() & OP_CONNECT로 추정되어서 p/invoke 해도 되는 여지가 커요. 이거는 고의로 무거워져라는 마법을 치는거 아니나요. 이케 살면 쓰나 ..
