2013-04-17 2 views
0

나는 보았지만 NIO2를 설명하는 좋은 예나 Java 소켓으로 비동기 IO를 수행하는 방법을 찾을 수 없었다. 예를 들어 스레드가 비동기 IO를 사용하여 일반적인 동기 IO 대신 소켓에서 읽을 수있게하여 웹 크롤러의 속도를 높이려면 어떻게해야합니까?자바 비동기 소켓 입출력

답변

1

NIO2는 동기 입출력보다 빠릅니다. 몇 개의 스레드로 많은 연결 (수만개)을 실행할 수 있습니다. 각 연결에 쓰레드를 쓸 여유가 있다면 동기식 I/O를 사용하십시오. 프로그래밍이 더 간단합니다.

+0

늦게 답장을 드려 죄송합니다. NIO2를 사용하는 것이 언제 적절할 수 있는지 명확히 할 수 있습니까? – Jin

+0

다른 말로하면, 연결 수가 많은 쓰레드를 적게 쓴다면, 쓰레드마다 더 많은 쓰레드를 쓰는 것이 더 좋은가? – Jin

+0

쓰레드는 많은 메모리를 필요로하기 때문에 컴퓨터에> 1000 개의 쓰레드를 가지는 것은 실용적이지 못하며 강력한 서버 머신조차도 한번에 10000 개 이상의 쓰레드를 처리 할 수 ​​없다. 따라서 메모리 소비가 주요 기준입니다. 100 개 미만의 연결에 대해서는 연결 당 하나의 스레드를 사용하고 스레드에 대해 많은 메모리를 소비 할 수 있다면> 100이라고 생각합니다. –