Java的NIO编程,保证你能看懂
网络模型是这样的。 (1)server创建初始化一些预备工作之后,就开始等待客户端client的链接 (2)client开始链接server。 (3)server一旦请求到client的请求之后就会开启一个线程去处理。 就好比是只有一家餐饮店,每进来一个顾客,我们就需要去创建一个线程去处理。这就是BIO。他的缺点可想而知。如果客户端很多的话,server就必须要开启很多个Thread去处理,这样也太麻烦了。毕竟像淘宝微信这样的平台好几亿人再用,而且请求量这么大,总不能开启几亿个线程去处理吧。这时候在jdk1.4就出现了NIO。 2、出现了NIO 既然BIO有这么多的缺点,java官方肯定也明白,于是在jdk1.4的时候及时的加入了NIO 个跟上一个的区别我们来捋一下: (1)一个客户端进来之后首先加入到Set中 (2)server时刻轮询着这个set,一旦发现有客户端连接进来就开始handler (3)多个client连接进来的时候,都保存在这个set中,这样我们就可以轮询处理多个client了。
这就NIO,他的优点从上面的图也可以看出来。我们可能只需要创建一个Thread就可以处理所有的client了。当然每一个client要做的事情不一样,有的是连接请求,有的是读写请求,这时候server就可以根据不同的请求使用不同的handler了。再给出一张图看一下: (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |