2009-05-23 2 views
1

하나의 스레드를 사용하여 클라이언트의 데이터를 읽고 다른 스레드를 사용하여 클라이언트에 데이터를 쓰는 NIOServer를 만들고 싶습니다. 또한 클라이언트 연결을 수락하는 것은 다른 스레드에 있습니다.NIO의 스레딩 구현에 도움이 필요합니다.

어떤 온라인 도움말

감사 디팍 있습니까

답변

1

왜 그렇게 많은 스레드를 사용하여, 당신은 선택과 단일 스레드와 그보다 쉽게 ​​모든 것을 할 경우? net I/O에 대한 다중 스레드 접근 방식을 원할 경우 일반 오래된 차단 소켓을 고려해야합니다.

나는 3 개의 선택기로 모든 작업을 수행 할 수 있습니다. 하나는 연결 수락, 하나는 읽음, 하나는 씁니다. 연결을 수락하면 적절한 관심 분야와 함께 채널을 다른 두 선택기에 등록 할 수 있습니다.

물론 채널을 비우려면 두 선택기 (선택 읽기 및 쓰기)에서 SelectionKey를 취소하거나 닫아야합니다.

0

난 당신이 샘플/NIO/서버에서 JDK를 함께 제공되는 샘플 코드를 살펴이 제안

0

나는 당신에게 Apache Mina 추천 : 등 매우 유연하고 높은 수준의 추상화, 높은 성능을