范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

浅析libevent

  libevent是一个轻量级的开源高性能网络库,基于事件驱动,跨平台支持WIN linux Mac 支持多种IO多路复用技术,支持 IO 定时器和信号等事件的统一调度,支持注册事件的优先级。memcache 使用libevent作为底层网络库。
  Reactor 模式:
  我们普通的函数调用 ,是程序调用某函数 ,函数执行中一直等待该函数执行完之后再继续执行下面的代码。Reactor 模式是一种事件驱动机制。和普通的函数调用不同的是这里的应用程序不是主动的调用某个API函数完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor,如果相应的事件发生,Reactor将主动调用应用 注册的接口,这些函数是回调函数。开始用户会在相应的event中设置回调函数和相应监听句柄并由libevent中的Reactor实例进行管理。
  采用Reactor模式是编写高性能网络服务器的必备技术之一:
  优点:响应快,不会因为某个同步事件所阻塞,因为采用的是回调函数执行,虽然Reactor本身是同步的。
  采用Reactor框架本身与具体事件的处理没有关系,只负责处理与用户的交互,具有很高复用性。
  可以扩展多个Reactor实例来实现多CPU的资源利用
  因为采用了阻塞的select epoll等IO复用函数进行阻塞监听批量的句柄,所以在事件到来时事件的处理逻辑,也就是回调函数不会阻塞住,而是非阻塞的执行。
  应用场景:
  1.初始化libevent的实例也就是struct event_base结构体也就是对应的Reactor模型在libevent中的实体
  struct event_base *base = event_init();
  2.用户初始化所要注册的事件 根据不同的事件,网络中主要包括 定时事件,IO事件,信号事件,libevent中使用宏方便用户根据不同的事件调用与事件名称相匹配的函数,但是内部全部都是调用一个借口event_set(),参数中对于所有时间都会有一个函数指针用于用户注册回调函数,一个句柄(对于IO事件就是文件描述符,信号就是信号的编号,对于定时事件不用设置)
  3.将事件本身的基本信息设置好之后要和Reactor的实例也就是和某一个event_base 进行联系,因为可能存在多个event_base 实例
  4.基本信息设置完成之后,调用event_add 函数将事件通过Reactor实例也就是struct_base的统一接口找到性能最高的IO复用函数注册到其中,包括设置超时时间。对于定时事件,libevent使用一个小根堆管理,key为超时时间,对于IO和信号事件,将该事件放到等待双向链表中,
  5.进入无限循环等待就绪事件,以epoll为例,每次循环前,libevent都会检查定时事件中最小的超时时间tv,根据tv设置epoll的最大等待时间,以便后面及时处理超时事件,当epoll超时返回后就将超时事件添加到就绪队列如果是正确返回就不用添加超时事件,之后同样直接依次遍历就绪队列执行相应的回调函数处理逻辑。此处可以看出是同步处理逻辑的。(IO事件已经在epoll_wait中添加进了就绪队列了)
  IO和timer事件的统一:
  因为系统提供的IO机制像select或者epoll_wait 都允许程序制定一个最大的等待时间,也称作最大超时时间timeout,即使没有IO事件发生,也能保证能在timeout时间到达时候返回。
  根据所有timer事件的最小超时事件来设置系统IO的timeout时间,当系统IO返回时候再激活所有继续的timer事件就可以了,这样就能将timer事件完美的融合到系统的IO机制中去了。这是Reactor 和Proactor模式中处理Timer事件最经典的方法了。
  libevent支持多线程:
  libevent代码本身不支持多线程,因为源代码没有同步机制。
  但是可以采用消息通知机制来支持多线程:
  1.暴力抢占:当一个线程正在执行的时候,此时主线程来了一个任务此时立即抢占执行主线程的任务,此时好处是任务可以立即得到处理,但是你必须处理好切换的问题,过多的切换也会为CPU带来效率问题。
  2.消息通知机制:当主进程有一个任务需要处理的时候会发送一个消息通知你去执行任务,此时当前进程还是执行自己的任务,在自己的任务执行完后,查看消息说通知有一个任务,再去处理任务,但是通知消息不是立即查看的,没有很好的实时性。
  3.消息通知+同步层 :有个折中的处理方式,就是中间增减一个任务队列,这个任务队列是所有线程都可以看到的,每个线程都将新任务扔到这个队列中并且发送一个字符来通知,得到通知的当前线程只是取出其中的一个任务。当然,对于这个任务的操作都是同步的,也就是每一个线程操作要加锁,这就是一个加锁的队列。

支付宝又双叒叕推出新NFT皮肤!助力NFT疯狂出圈近日,蚂蚁链继推出敦煌刺客伍六七合作款的付款码NFT皮肤后,又新推出大热动画电影白蛇2青蛇劫起联名款付款码NFT皮肤青蛇劫起小青和青蛇劫起小白。据悉,两款付款码NFT皮肤在4个固定OPPOF20Pro概念机1亿像素主摄6000mAh大电池Tech分析狮8月23日消息,这次给大家介绍的概念机是OPPOF20Pro。这款概念机不仅外观设计出众,其配置性能也是非常让人感觉到惊艳的。特别是其续航配置非常强悍,下面我们一起来三星取消手机内置所有广告!系统不再有任何广告据韩国媒体最新消息称,三星已经提交声明,表示将取消三星手机中的广告推送,包括但不限于三星天气三星支付三星主题等专有应用中的广告。后续三星还在社交媒体上进行了通知,对外表示三星已决定漫步者W820NB头戴式耳机平价蓝牙降噪耳机的性价比之选提到头戴降噪耳机,第一反应肯定是价格不菲的索尼和bose吧?国民音频大厂漫步者最近推出了新款头戴主动降噪耳机,价格竟然只有前者的几分之一,到底体验如何呢?在三百元左右的价位,漫步者小米或有新机将出搭配骁龙870意思为小米CC系列根据知名数码博主数码闲聊站的消息,小米接下来还有两款中高端手机尚未发布,处理器方面可能会采用骁龙870或865,以及天玑1200等,主打中高端。不仅如此,该博主还透露一些有关小米C投影仪怎么选?电商老板胡仔分享五大千元投影仪推荐随着市场需求变化,智能投影仪已经脱离原本的办公应用场景,开始走进千家万户。除了满足用户日常的观影需要,更是兼备多样化的休闲娱乐功能。不过面对网上成千上万的投影仪,数码小白都会头疼投iPhone资源BS机到底能不能买?是智商税还是高性价比?最近很多人问我同一个问题资源机到底好不好。其实他们都入手了资源机。买了之后再问我到底好不好!自己都买了,还问我,其实你心里已经默认了!你选择的它的理由可能就是便宜,或者经不起主播店联想TabP12Pro通过FCC认证支持NFC功能据外媒MySmartPrice报道,联想TabP12Pro已获得FCC认证。认证文件显示,联想TabP12Pro型号为LenovoTBQ706F,这与此前GooglePlayConOPPOFindX4用上自研芯片,外加5200mAh电池144Hz刷新率,真猛众所周知,芯片就是智能手机的心脏,但国产手的芯片制造一直由外国人掌控。而如果核心技术一直都向别人购买使用,不仅不能把手机的利润做到最大化,还容易在关键技术上被别人卡脖子,如华为现在您知道高通骁龙的888芯片和888plus都有什么区别吗?都是三星5nm工艺,CPU架构也都是是一大核Knyo680(XI)三中核Knyo680(A78)四小核Knyo680(A55),GPU也是Adreno680,一样的LPDDR4X2iPhone13要来了,大家最期待哪些改变呢?如果不出意外,iPhone13下个月就要与大家见面了。从iPhoneX到iPhone12苹果一直在挤牙膏,说是每一代都不一样,其实说到底也没啥大变化啊。那么iPhone13大家最期
为什么显卡厂商有这么多,CPU厂商只有inter和amd?欢迎在点击右上角关注太平洋电脑网,更多有趣资讯等着您哦。其实显卡的厂商真的不多,就是三家AMDIntelNVIDIA三家的。当然我说的是我们普通买到的消费级的。目前CPU的,我们买芯片5G券商,后期会有行情吗?不说别的,就说券商吧,最好别整,心理战,形态理论战,K线理论等等理论技巧都已经玩到极致,全是反身性理论,反向指标,一旦买入,盈利很困难。举个例子,当阳线突破时你买进没毛病吧,可是第安兔兔4月安卓性价比手机榜单虽迟但到,出乎意料被子品牌屠榜在前几天,安兔兔终于把上个月的安卓性价比手机榜单公示出来了!价格区间选到了01999元,这个档位也是目前主流手机市场最畅销的存在。从榜单的机型来看,上榜的前十名手机出乎意料的都是隶千元机该怎么选?这个几个品牌值得一看,还有一种选择是真香千元机,顾名思义。就是价位在10001999间的手机,这个区间的新出机型比百元机配置要强,比旗舰机乃至于中端机存在些许不足。就有一种比上不足,比下有余的感觉。那么,我们该如何去选择苹果亮大招,iPhone11一夜沦为良心价,网友盼到了苹果在中国市场仍然保有庞大的用户群体,它的综合实力确实是毋庸置疑的,也掌握着高端机领域的话语权。是的,一直以来苹果都比较致力于为消费者提供极致体验的产品,所以在高端机型堆料上面还是Android12正式发布设计风格大变样,为用户隐私保驾护航就这两天,谷歌召开IO2021开发者大会,并且发布了全新的Android12系统,从资讯看到,新一代的手机操作系统设计风格大变样,操作的流畅度向苹果iOS操作系统靠拢,核心方面用户火星上到底是什么样子,人站在火星上什么感觉?火星一个去了就不想回来的星球,因为你根本回不来,如今的火星好与坏,似乎与我们并没有多大的关系,人类如今还没有技术可以实现火星移民,没有办法上去,也没有办法上去了火星返回地球。所以,海思麒麟芯片终于跌价了,现在入手正合适测评对象荣耀V30测评内容是否值得入手测评人奶茶的数码自从华为被打压后,搭载最新海思麒麟芯片的手机一直处于供不应求的局面,例如华为Mate40系列,从发布至今都需要加价才能购买。并为确保登月任务的宇航员在途中保持舒适,猎户座团队在飞船内部提供了哪些设备?美国宇航局(NASA)已计划在2024年之前将Artemis任务的宇航员送上月球并返回地球。多日行程意味着宇航员需要在旅行中保持舒适并适当休息。NASA的猎户座团队向外界展示了他们农历二十四节气是谁发明的?闰年又是谁研究出来的?农历二十四节气是谁发明的?闰年又是谁研究出来的?农历二十四节气是颛顼发明的。有人可能不认识颛顼这两个字,颛的意思是圆头胖脑,顼是饰品的意思,合起来就是头戴玉的人。颛顼(zhunx)3000以内后置拍照手机最强是哪款手机?感谢邀请3000以内后置拍照手机最强是哪款手机?题主问题的核心是3000元以内拍照手机最强的是哪款手机?我觉得这并没有确切的答案,因为每个厂商的优化算法不同,所以导致人们的看法也会