并不是线程安全的 , 但这不代表不支持多线程模式 。
前几天在微博上看到发了条微博说到和nginx的并发模型 , 看到评论很多人都说不对
于是自己又查了下,总结一下我所学过的网络库或者网络服务器的并发模型
文章插图
1、muduo:one loop per ,主线程注册事件,通过某种负载均衡机制(round robin)将连接的事件注册到子线程的上,据说也是Netty的方案,最近也正好在学netty , 刚好可以验证一下 。
另外,muduo还提到了一个()的功能:如果用户在当前线程调用,则回调会同步进行,如果在其他线程调用,则IO线程会被唤醒执行这个 。这种跨线程调用是如何实现的?因为其他线程很可能阻塞在上 。传统方法是用pipe(后面将提到的多线程),在muduo里面是用(2),将回调放入线程的任务队列 , 并发送一个大小的消息来唤醒 。
2、nginx: + 的工作模式 , 的微博说是接受连接分配给 , 事实上不是这样的,只是通过信号管理进程,之间通过来决定是否将监听套接字加入到loop中 。所谓的one loop per
文章插图
3、:这是在网上找的资料 , 并不是线程安全,但不代表其不支持多线程 。的网络部分使用,有一个经典的图描述了其多线程实现:
文章插图
【libevent实现多线程】这种消息通知+同步层的机制,通过pipe和一个加锁的任务队列(CQ)实现 。与muduo的效果类似 。
- 赤羽鸡王诱饵多久用一次 赤羽鸡王饲料
- 狙击精英4如何实现弹跳击杀 狙击精英4怎么跳跃
- 世界上国家最多的是哪个洲 世界上国家数目最多的大洲是什么
- 2023沈阳大东购车消费券有多少钱 沈阳大东汽车小镇最新消息
- 丽江到大理多远,需要多久时间 丽江到大理多少公里路
- 宁夏大学研究生2023年学费和住宿费是多少?
- 聊城办理狗证要花多少钱? 聊城狗证怎么办理
- 聊城恒润供暖公司小区维修人员电话是多少?
- 聊城热电供热公司客服电话是多少 聊城热电供热公司客服电话是多少号码
- 聊城哪里可以打四价疫苗 聊城打四价流感疫苗多少钱?