SelectionKey 2

자바 NIO TCP 넌블로킹 - 선택된 키셋, 채널 작업 처리

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이전 포스팅과 이어집니다.2017/04/21 - [자바] - 자바 NIO TCP 넌블로킹 채널 - 넌블로킹 방식의 특징, 셀렉터의 생성과 등록 Selector 를 구현하려면 select()를 호출해야 합니다. select()는 관심 키셋에 저장된 SelectionKey 로부터작업 처리 준비가 됐다는 통보가 올 때까지 대기합니다(블로킹). 최소한 하나의 SelectionKey 로부터 작업 처리 준비가 됐다는 통보가 오면 리턴을 하고리턴 값은 통보해온 SelectionKey 의 수입니다. 위 세 종류의 select() 중에 첫 번째..

자바 2017.04.24

자바 NIO TCP 넌블로킹 채널 - 넌블로킹 방식의 특징, 셀렉터의 생성과 등록

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ ServerSocketChannel과 SocketChannel은 블로킹방식도 지원하지만 넌블로킹 방식도 지원합니다. 블로킹 방식의 경우 언제 클라이언트가 연결을 요청할지 알 수가 없어서 accept()에서 블로킹이 됩니다.그리고 언제 클라이언트가 데이터를 보낼지 알 수가 없어서 read()에서도 항상 받을 준비를 위해 블로킹이 됩니다. 이러한 방식의 단점은 ServerSocketChannel 과 SocketChannel 당 하나의 스레드가 할당되어야 한다는 것입니다. 연결된 클라이언트의 수가 많을수록 스레드의 수가 증가하고 서버..

자바 2017.04.21