目录
文章目录
TCP Socket 状态机概览
高并发 TCP 网络服务器
I/O 并发模型设计
-
多进程模型:主进程负责 Listen 和 Accept 连接请求;Accept 后,就 fock 子进程来处理 read() 和 write()。缺点是,多进程数量有限,消耗资源也多。
-
多线程模型:使用线程来处理 read() 和 write() 会更加高效。但无论是使用多进程还是多线程,如果一个 TCP 连接只对应了一个进程或线程,就很难逃脱 C10K 的问题。
-
I/O 多路复用模型:例如 epoll(),可以使得一个进程或线程能够处理多个 TCP 连接。
以典型的 I/O 多路复用模型 Nginx 为例,实现了 Master + Worker 软件架构。Worker 的数量通常等于 CPU Core