高并发网络服务器设计

小白模式

毕业入职第一家公司的入职作业就是写一个高并发的http服务器。当时的大致思路是这样:
主线程创建监听端口,将监听端口放入epoll监听列表,然后epoll开始循环监听,当到来的读请求是监听端口,则接受客户端连接,并将客户端连接放入监听队;当到来的读请求来自于客户端连接时,直接开启新的线程来处理客户端发来的请求。
在这里插入图片描述

高端模式

使用过一些高并发网络通信框架之后发现,它们的实现方式大多都是这样的,
包括三部分:主线程,select线程池,工作线程池

主线程

主线程负责创建监听端口,监听客户端连接的到来,当有客户端连接请求过来时,两请求交给一个选中的select线程

select线程

select线程负责创建与客户端的连接,并且这个客户端整个生命周期都会由这个这个select线程来负责

工作线程池

当select线程监听到客户端的读事件之后,会将这个读任务放入工作线程池,由工作线程负责读取客户端请求
在这里插入图片描述

总结

高端模式实际上是让各个线程的职责单一,实现更灵活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值