From a620b6a1df3d88d61e440810862bd7875484f9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=A0=91=E6=96=B0?= Date: Sat, 1 Jul 2017 23:32:07 +0800 Subject: [PATCH] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index eab031263..7f27581e8 100644 --- a/README.md +++ b/README.md @@ -76,11 +76,11 @@ acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD #### 1.2.3、网络服务器框架 该模块是 acl 中最为重要的模块,提供了服务器编程中常用的基础设施,该服务器框架来源于著名的 Postfix,在其基础上进行了诸多扩展,目前已经支持的主要服务模型有: -**1. 多进程模型:**一个连接一个进程,这种模型的优点是编程简单、安全稳定,缺点是并发度不高; -**2. 多进程多线程模型:**每个子进程是由线程池中的一组线程处理所有的客户端连接,采用 IO 事件触发方式,只有当连接有数据可读时才会将连接与一个线程进行绑定,线程处理完后立即归还给线程池,这种模型的最大优点是可以用少量的线程便可以处理大量的客户端连接,而且编程比较简单(相对于非阻塞模型); -**3. 多进程非阻塞模型:**每个子进程是由一个单独的非阻塞线程组成,该线程采用完全非阻塞 IO 方式处理外来的大量客户端连接(类似于 nginx/squid/ircd),该模型的优点是处理效率高占用资源少,可以处理大量客户端连接,缺点是编程比较复杂; -**4. UDP 通信模型:**该模型主要为了支持 UDP 网络过程而增加的服务模型; -**5. 解发器模型:**该模型的实例主要用来处理一些定时任务的后台服务过程(类似于系统的 crontab)。 +* **多进程模型:**一个连接一个进程,这种模型的优点是编程简单、安全稳定,缺点是并发度不高; +* **多进程多线程模型:**每个子进程是由线程池中的一组线程处理所有的客户端连接,采用 IO 事件触发方式,只有当连接有数据可读时才会将连接与一个线程进行绑定,线程处理完后立即归还给线程池,这种模型的最大优点是可以用少量的线程便可以处理大量的客户端连接,而且编程比较简单(相对于非阻塞模型); +* **多进程非阻塞模型:**每个子进程是由一个单独的非阻塞线程组成,该线程采用完全非阻塞 IO 方式处理外来的大量客户端连接(类似于 nginx/squid/ircd),该模型的优点是处理效率高占用资源少,可以处理大量客户端连接,缺点是编程比较复杂; +* **UDP 通信模型:**该模型主要为了支持 UDP 网络过程而增加的服务模型; +* **解发器模型:**该模型的实例主要用来处理一些定时任务的后台服务过程(类似于系统的 crontab)。 服务器框架中的子进程实用采用半驻留服务模型,支持子进程预启动机制、最大最小进程数控制、子进程异常报警、单一进程监听多个地址(可同时监听TCP/UDP套接字以及 UNIX 域套接字)、子进程安全控制、日志输出至 syslog-ng、多进程TCP连接均匀化;采用配置文件驱动方式,每个服务一个配置文件,方便进程管理及服务进程在线升级。