Java 非阻塞IO常用于高性能的服务器程序。对于阻塞式IO常常需要多个线程来处理客户端的请求,由于线程的开销较大,往往使服务器性能下降很快。而非阻塞IO只需几个线程就可以胜任大量的请求。对于p2p软件(例如BT软件),也常常使用非阻塞IO,来实现文件交换。
下面是一个典型的非阻塞IO程序。客户端向服务器端发起10个连接,服务器端向每个客户端发送”Hello”,并打印出来。
服务器端程序:























































































































































































































客户端程序:




































































































运行结果:
hello
client 0 has connected
hello
client 1 has connected
hello
client 2 has connected
hello
client 3 has connected
hello
client 4 has connected
hello
client 5 has connected
hello
client 6 has connected
hello
client 7 has connected
hello
client 8 has connected
hello
client 9 has connected