하나의 Connection 이 하나의 Thread 를 독점하여 사용하는 방식을 BIO 라고 한다. BIO 방식은 Thread 를 독점하기 때문에 다른 Connection 을 받아도 Thread 를 사용하고 있는 Connection 이 Thread 의 연결을 끊기까지 로직을 수행할 수 없다. 따라서 Connection 과 Thread 의 수가 일치해야 한다.

하나의 Connection 이 여러개의 Thread 를 번갈아 사용하는 방식을 NIO 라고 한다. Connection 이 사용하는 Thread 가 Application 외부의 동작이 필요하여 Kernel Thread 에게 위임하면 해당 기능이 모두 수행되기 전까지 Thread 는 잠시 쉬는 상태가 된다. 쉬고 있는 Thread 를 다른 Connection 에게 사용을 허가하여 효율을 높일 수 있다. 따라서 Connection 이 Thread 보다 많을 수 있다.