当前位置: 首页 > wzjs >正文

大航母网站建设案例做统计的网站吗

大航母网站建设案例,做统计的网站吗,推广公司合同,天津住建网【Linux】【网络】Reactor模式 1. Reactor 模式: Reactor 模式是一种事件驱动的设计模式,同步I/O通常用于设置Reactor 模式主线程(I/0处理单元,下同)只负责监听文件描述上是否有事件发生,有的话就立即将该事件通知工作线程(逻辑…

【Linux】【网络】Reactor模式

1. Reactor 模式:

Reactor 模式是一种事件驱动的设计模式,同步I/O通常用于设置Reactor 模式主线程(I/0处理单元,下同)只负责监听文件描述上是否有事件发生,有的话就立即将该事件通知工作线程(逻辑单元,下同)。除此之外,主线程不做任何其他实质性的工作。读写数据,接受新的连接,以及处理客户请求均在工作线程中完成。
在这里插入图片描述
使用同步 I/O模型(以epoll_wait() 为例)实现的 Reactor 模式的工作流程是:
1)主线程往
epoll内核事件表
中注册socket 上的读就绪事件。(主线程循环等待监听连接套接字上的事件)
2)主线程调用epoll_wait 等待socket 上有数据可读。
3)当socket上有数据可读时,epoll_wait() 通知主线程。主线程则将socket 可读事件放入请求队列
4)睡眠在请求队列上的某个工作线程被唤醒,它从socket读取数据,并处理客户请求然后往epoll内核事件表中注册该socket上的就绪事件。
5)主线程调用epoll_wait() 等待 socket 可写。
6)当socket 可写时,epoll_wait()通知主线程。主线程将socket可写事件放入请求队列
7)睡眠在请求队列上的某个工作线程被唤醒,它往socket上写入服务器处理客户请求的结果。

工作流程:
  1. 主线程(Reactor)负责监听和接收事件

    • Reactor 线程等待 I/O 事件的发生(例如 socket 上的可读或可写事件),并通过事件循环处理。
    • 它使用 I/O 多路复用机制(如 epollselect)来监听多个事件源(例如多个 socket)。
  2. 注册事件

    • 主线程将事件(例如可读、可写、连接请求等)注册到 I/O 多路复用器(如 epollselect)。
    • 当事件发生时,I/O 多路复用器会通知 Reactor 线程。
  3. 事件分发

    • Reactor 线程通过事件分发机制,将事件分发到相应的 事件处理器
    • 每个事件(如连接请求、数据可读、数据可写等)都有对应的回调函数,Reactor 会调用这些回调来处理事件。
  4. 事件处理

    • 回调函数通常由工作线程或主线程执行,处理 I/O 操作(例如读数据、写数据、关闭连接等)。
示例:

Reactor 模式通常通过主线程驱动的事件循环来实现,在 libevent 中可以通过 event_base 来实现这个事件循环。

#include <event2/event.h>
#include <stdio.h>void on_event(evutil_socket_t fd, short what, void *arg) {printf("Event triggered on fd %d\n", fd);// 可以在此执行具体的 I/O 操作,如读取数据、写数据等
}int main() {struct event_base *base = event_base_new();struct event *ev;evutil_socket_t fd = 0; // 标准输入文件描述符ev = event_new(base, fd, EV_READ | EV_PERSIST, on_event, NULL);event_add(ev, NULL);  // 将事件加入事件循环event_base_dispatch(base);  // 启动事件循环,等待事件发生并处理event_free(ev);event_base_free(base);return 0;
}

PS:

  • Libevent 的本质是基于 事件驱动 的,它通过一个单线程的事件循环来处理回调函数,避免了频繁的线程切换和上下文切换,提高了效率。回调函数是在主线程的栈区执行的,这样可以避免创建额外线程的开销。但是某个回调函数阻塞可能会导致程序阻塞。
  • 而 modu 库 在此基础上加入了线程池,这样可以将回调的执行交给多个线程来处理,进一步提升了并发处理能力,尤其是当回调函数的操作比较耗时,或需要大量并发时。线程池的引入能够更好地分摊负载,并且避免了主线程被阻塞的风险。

把libevent实现写完会写一下modu库


文章转载自:

http://VghDE2fX.nxtgb.cn
http://m9t7E2DK.nxtgb.cn
http://l3bcx9p3.nxtgb.cn
http://cT37voBd.nxtgb.cn
http://2dLgDJ6m.nxtgb.cn
http://qtxClSS7.nxtgb.cn
http://N2j4xlLS.nxtgb.cn
http://jSjLb8fj.nxtgb.cn
http://1mmAB2kE.nxtgb.cn
http://XI0BzxFP.nxtgb.cn
http://6sD1jjzr.nxtgb.cn
http://v8rBpRFD.nxtgb.cn
http://WyY6TlGy.nxtgb.cn
http://F5w7XHLp.nxtgb.cn
http://XLkeu8eK.nxtgb.cn
http://aZ6NPKEO.nxtgb.cn
http://kp78iccH.nxtgb.cn
http://H6wg2VZN.nxtgb.cn
http://AO6Sx4z7.nxtgb.cn
http://CaLTGWmO.nxtgb.cn
http://rFdJtZEN.nxtgb.cn
http://f28PAk2o.nxtgb.cn
http://Xh59GqOn.nxtgb.cn
http://mTrscMNG.nxtgb.cn
http://cEpC0Jbz.nxtgb.cn
http://Cibu5nCL.nxtgb.cn
http://yszt3mnd.nxtgb.cn
http://8d9xkZiz.nxtgb.cn
http://FjOpuHKZ.nxtgb.cn
http://GIRpNctY.nxtgb.cn
http://www.dtcms.com/wzjs/710653.html

相关文章:

  • 织梦 图片网站网页制作作业模板
  • 北京市中关村有哪家可以做网站维护怎么看app的下载网址
  • 东营有做网站的公司微博推广怎么做
  • 金融公司网站设计图营销网站开发找哪家
  • 在线建站软件社交网站建设码
  • 南通小企业网站建设wordpress顶部广告怎么添加
  • 孝义网站建设单页面网站做百度推广效果
  • 安徽教育平台网站建设wap是什么东西
  • 商业设计网北京seo服务
  • 极简风网站上海对外经贸大学
  • 成都网站开发多少钱个人网站名称请
  • 网站建设数据库建设爱采购下载app
  • 天津网站建设方案书域名访问网站怎么下载
  • 商城网站建设所必备的四大功能是哪些四川省建设勘察设计网站
  • 网站原型的交互怎么做十堰秦楚网
  • 网站pc端和手机端分离怎么做做网站的服务器很卡怎么办
  • 安宁市建设局网站上杭县建设局网站
  • 优秀网站的要素有高大上的广告公司名字
  • 北京网站制作很好 乐云践新深圳产品设计工资
  • 资讯网站高端网站案例网站建设
  • 高端制作网站服务如何安装wordpress软件
  • 南通网站建设方案做网站4核是什么意思
  • WordPress配置全站加速cdn网站根目录怎么找
  • 萧山建站深圳南山网站建设工作室
  • dedecms做的网站手机上看图片变形做房产抵押网站需要什么手续费
  • 1号店网站模板下载交互网站开发培训
  • 手机网站设计要素html用表格来做网站布局
  • 自主式响应网站潍坊专业做网站公司
  • 网站规划建设与管理维护课后答案6户型图装修设计图app
  • 图片类网站 怎么做优化汽车之家汽车报价大全网页版