Java NIO 之阻塞与非阻塞

来源:互联网 发布:淘宝优惠券群是真的吗 编辑:程序博客网 时间:2024/05/16 05:30

1、传统的 IO流都是阻塞式的。也就是说,当一个线程调用 read()write()

时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不
能执行其他任务。因此,在完成网络通信进行
IO 操作时,由于线程会
阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,

当服务器端需要处理大量客户端时,性能急剧下降。

2、Java NIO 是非阻塞模式的。当线程从某通道进行读写数据时,若没有数
据可用时,该线程可以进行其他任务。线程通常将非阻塞
IO 的空闲时
间用于在其他通道上执行
IO 操作,所以单独的线程可以管理多个输入
和输出通道。因此,
NIO 可以让服务器端使用一个或有限几个线程来同
时处理连接到服务器端的所有客户端。

原创粉丝点击