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