摘要: 2.3 多路复用 但是NIO仍有它的缺陷,因为服务端和客户端都在一个线程中,主线程遍历客户端集合去每一个客户端都问一遍:你有没有数据,这样的话,如果有10K个客户端,只有最后一个客户端才收到了信息,但是取数据时还是要去将前面的99999个客户端问一遍,但是前面的遍历其实都是无用功。所以还要继续优化, 阅读全文
posted @ 2021-06-16 15:18 Zs夏至 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 2.2 NIO 由于上面BIO的弊端,以及为了解决C10K的问题,出现了NIO模型(NonBlockingIO)。java中的nio指new io,而linux中的nio指NonblockingIO。 NIO是同步非阻塞模型。 代码如下: import java.io.IOException; im 阅读全文
posted @ 2021-06-16 15:16 Zs夏至 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 二、 Socket编程 常见的IO模型主要有以下分类: 同步/异步 阻塞/非阻塞 这两个可以互相组合,如同步阻塞模型/同步非阻塞模型,但是没有异步阻塞模型。windows实现了异步模型,但是linux并没有实现,因此linux中的IO都是同步模型的。 2.1 BIO BIO--即`BlockingI 阅读全文
posted @ 2021-06-16 15:15 Zs夏至 阅读(83) 评论(0) 推荐(0) 编辑