, 半包拼接处理 , 缓存机制 等方面的问题 , 这是所有成熟的网络应用程序都要具有的功能 , 否则只能说是入门级的 Demo ;
④ NIO BUG : NIO 本身存在一些 BUG , 如 Epoll...针对 BIO 模型的 资源浪费 的解决方案 : 线程 IO 复用模型 ;
① BIO 模型中的资源浪费 : 服务器端的线程 大部分时间都处于阻塞状态 , 没有数据交互时 , 还占用着线程资源 ;
② 单个线程为多个连接服务..., 开始为有数据写入的连接服务 ;
该模型中 , 一个线程为多个连接服务 , 类似于 NIO 模型的机制 , 该机制就是之前讲过的 在单个线程中使用 单个选择器 ( Selector ) 阻塞监听多个客户端对应的多个套接字通道...针对 BIO 模型的 资源消耗 的解决方案 : 使用线程池机制 , 实现对线程资源的复用 ;
① BIO 模型中的资源消耗 : 每个客户端都要建立一个对应的连接 , 每个连接都要占用一个线程 , 这样需要创建很多线程...;
② 线程池机制复用线程 : 每个连接不再分配单独的线程进行处理 , 使用线程池机制分配线程资源 ;
③ 业务与线程的对应关系 : 每个业务逻辑都可能分配给多个线程中的一个 ( 不能同时分配多个 )