MC是如何使用多线程和状态机来处理请求命令的?
24-05-24 10:27
809
0
网络模型:了解了 Mc 的系统架构之后,我们接下来可以逐一深入学习 Mc 的各个模块了。首先,我们来学习 Mc 的网络模型。
主线程:Mc 基于 Libevent 实现多线程网络 IO 模型。Mc 的 IO 处理线程分主线程和工作线程,每个线程各有一个 event_base,来监听网络事件。主线程负责监听及建立连接。工作线程负责对建立的连接进行网络 IO 读取、命令解析、处理及响应。
Mc 主线程在监听端口时,当有连接到来,主线程 accept 该连接,并将连接调度给工作线程。调度处理逻辑,主线程先将 fd 封装成一个 CQ_ITEM 结构,并存入新连接队列中,然后轮询一个工作线程,并通过管道向该工作线程发送通知。工作线程监听到通知后,会从新连接队列获取一个连接,然后开始从这个连接读取网络 IO 并处理,如下图所示。主线程的这个处理逻辑主要在状态机中执行,对应的连接状态为 conn_listening。
-
知乎热榜API、百度热点API、微博热搜API(开源)- 聚合热榜API开源
环境需求PHP 5.4及以上使用方式:上传即用知乎热榜API源码<?php // 知乎热榜 热度 function zhihuHot() { $_resHtml = str_replace(["\... 769 0 25-04-07 -
jquery星星和心形评分效果
394 0 21-05-18 -
Swipe图片轮播
449 0 21-06-02 -
百家CMSV2.6
此版本为百家CMSV2.6版,有朋友一直在找,但网络上大部分为2.3版,后台操作方式有些类似于wemall单商户多分销。测试的配置为:LNMP,PHP5.6,... 388 0 21-07-02 -
班夫旅游小程序
班夫旅游小程序模板简介 帮助你完成一次说走就走的旅行,可以输入目的地搜索,有景区的详细介绍。界面设计绚丽,功能实用,是做旅游类小程... 1104 0 24-09-12 -
GifCam视频gif动画录制工具
GifCam中文版是一款方便易用的动画录制工具,该软件操作简单,下载完成后执行“GifCam.exe”便可开启,用户可以利用滑鼠拖曳视窗的四周边... 547 0 21-07-16 -
在线学折纸飞机 — Fold'N Fly 纸飞机
一个纸飞机数据库,包含易于遵循的折叠说明、视频教程和可打印的折叠计划。找到飞得最远、在空中停留时间最长的最好的纸飞机。包含叠纸飞机... 1104 0 25-01-08 -
kindle图书商城小程序
"kindle图书商城小程序-微信小程序源码" 这个标题揭示了我们关注的项目是一个基于Kindle图书的微信小程序。它不仅是一个应用,更是一个可... 1366 0 24-10-16
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~