1. 介绍
1.1 高并发服务器
(1)要求大规模的连接/会话可能同时进行
(2)列子:Web 服务器, 邮件服务器
1.2 线程池架构
(1) 每个连接分配一个线程,将导致过多的线程。
(2) 线程消耗内存,比如堆栈等等。
(3) 操作系统创建和关闭线程,都将花费很多的时间在线程之间的切换
2. 线程模型
2.1 基于会话模型
(1) 每个线程服务于一个客户端,比如 HTTP 会话。
(2) 线程被用于状态跟踪和 CPU 调度。
(3) 活跃线程的数量等于并发客户端会话的数量
2.2 基于 I/O 模型
(1) 将状态跟踪从 CPU 调度中分离出来。
(2) 线程是所有同质,仅为 I/O 调用保持状态。
(3) 一个线程可以服务于不同的会话,在不同的时刻。
(4) 一个会话可以被服务,通过不同的线程,在不同的时刻。
(5) 因此,从一个线程不是专门对于一个会话,仅仅专门对于一个 I/O 请求处理。
3. 基于 I/O 的线程调度