관리자 글쓰기
[NIO]TCP 비동기 채널?
2017. 1. 5. 21:42 - 개발 새발

TCP 비동기 채널은 연결요청(connect()), 연결 수락(accept()), 읽기(read()), 쓰기(write()) 를 호출하면 즉시 리턴된다. 이것은 넌블로킹 방식과 동일하다. 차이점은 이 메소드들을 호출하면 스레드풀에게 작업 처리를 요청하고 이메소드들은 즉시 리턴된다. 실질적인 작업 처리는 스레드풀의 작업 스레드가 담당한다. 작업 스레드가 작업을 완료하게 되면 콜백(callback) 메소드가 자동 호출되기 때문에 작업 완료 후 실행해야 할 코드가 있다면 콜백 메소드에서 작성하면 된다.



- 비동기 채널 그룹

선언

AsynchronousChannelGroup channelGroup = AsynchronousChannelGroup.withFixedThreadPool(최대 스레드 수, Executors.defaultThreadFactory());


ex) AsynchronousChannelGroup channelGroup = AsynchronousChannelGroup.withFixedThreadPool(Runtime.getRuntime().availableprocessors(), Executors.defaultThreadFactory());


종료시

channelGroup.shutdown();        channelGroup.shutdownNow();