php多线程(php和java哪个好)
4月12日 囍孤女投稿 php多线程(php和java哪个好)微博Qzone微信PHP实现reactor单线程网络模型
原创流浪剑客262021050823:12:24在各种网络模型的文章中,我们常常能看到reactor网络模型。
它常常出现在很多软件与外部交互的网络部分,如:
redis使用reactor单线程网络IO模型。
kafka使用reactor多线程网络IO模型。
为什么需要使用网络IO模型
关于为什么要使用网络IO模型:大家需要理解一下用户态、内核态、阻塞、非阻塞、同步、异步、IO多路复用等知识。
简单来讲
在这里简单地讲,就是用户态程序没法直接操作网络IO设备,它需要发起系统调用,将控制权交给操作系统内核,内核将数据从网卡中读取数据,返回给用户态程序。在这个过程中用户态程序是等待还是不等待,内核处理的结果是怎样通知给用户程序,这就是网络IO模型可以作优化的地方。
根本原因
说到底就是优化CPU的执行时间片,不能让CPU闲着。
很重要
补充一点网络数据的copy操作不是CPU执行的,CPU只是初始化这个传输动作,具体数据的copy是由DMA设备来完成的。
PHP实现Reactor单线程网络模型
reactor单线程网络模型,使用到了IO多路复用的epoll模型,事件机制。操作系统需要安装libevent扩展,php需要安装event、sockets扩展。
测试例子?phpaddr0。0。0。0;port8888;创建服务端socketlistenFdsocketcreate(AFINET,SOCKSTREAM,SOLTCP);绑定bindResocketbind(listenFd,addr,port);if(!bindRe){die(socketbinderror);}监听listenResocketlisten(listenFd,100);if(!listenRe){die(socketlistenerror);}globaleventArr,eventB实例化基础事件句柄,相当与epollcreate操作eventBasenewEventBase();绑定监听句柄,到基础事件句柄,相当于epollctl操作eventnewEvent(eventBase,listenFd,Event::PERSISTEvent::READ,epaccept);add();等待句柄就绪,相当于epollwait操作eventBloop();functionepaccept(listener){globaleventBase,eventAif((clientsocketaccept(listener))!false){tmp连接成功n;socketwrite(client,tmp,strlen(tmp));绑定端socket,到基础事件句柄,相当于epollctl操作clientEventnewEvent(eventBase,client,Event::PERSISTEvent::READ,epread,client);clientEadd();event实例一定要存放在一个全局数组里面。如果去掉该行,客户端强制断开再连接,服务端无法正常收到消息这里这一步我也不知道原因,注视掉确实会导致客户端断开希望能看到这里的大佬,评论区告知在下原因。欢迎交流eventArr〔intval(client)〕clientE}}functionepread(fd){buffersocketread(fd,250);msg你说:{buffer};socketwrite(fd,msg,strlen(msg));}
启动服务
phpceshi。php
结果截图
reactor单线程网络模型
我实现的功能是客户端发什么消息,服务端将消息重新返回给客户端。
这里我开了两个客户端作测试。符合实验的预期。
我个人觉得学习是个人的事,我的文章侧重于抛出一些观点,然后用简单的例子去论证,从而引发大家的兴趣,文章之中很多都是我参考了很多资料之后最简要的说明。大家应该关注文章之中引发个人困惑的东西,然后去思考学习。
投诉 评论 根号计算器(科学计算器手机版)根号计算器(科学计算器手机版)题1:考试到底能不能带计算器进考场?财政部会计资格评价中心发布的《2021年度全国会计专业技术中级资格考试考生须知》中明确规定:今年全……
江苏地震带(江苏处在地震带吗)江苏地震带(江苏处在地震带吗)巴嫩贝鲁特7。5级地震551年7月9日黎巴嫩首都贝鲁特附近发生了一次强烈地震,震级估计为7。5级,这次大地震震中烈度达到了10度,地震引发了……
余姚市阳明中学(余姚私立初中有哪几个)余姚市阳明中学(余姚私立初中有哪几个)余姚新闻网丨全力以赴战烟花众志成城保供电2021080318:28抽屉视频7月27日下午1时20分,城北供电中心的戴林、梁科才在阳明……
乌苏里江鱼(乌苏里江四大名鱼)乌苏里江鱼(乌苏里江四大名鱼)山天池里的水,流下来就是美丽的松花江,在三江口黑龙江和松花江汇合到一块,变成了金色的混同江,蓝色的乌苏里江,翻滚着浪花从南流淌下来了,三条大……
养蚕人丝绵坊(养蚕人家蚕丝被怎么样)养蚕人丝绵坊(养蚕人家蚕丝被怎么样)修水县的栽桑养蚕是当地的一项传统产业,历史悠久,许多村民祖祖辈辈靠种桑养蚕养家糊口和发家致富。改革开放后,随着我国城乡居民的生活水平提……
格物致知什么意思(格物悦己什么意思)格物致知什么意思(格物悦己什么意思)2021080710:45严师说字格物致知是一个汉语成语,意思是探究事物原理,从而从中获得智慧(或从中感悟到某种心得)。出自《礼记大学》:致……
合数的定义(质数和合数知识点)合数的定义(质数和合数知识点)认识质数和合数。彭大春各位网友,大家好,我是头条网彭老师。今天给大家讲一讲有关质数与合数的一些简单知识和小故事。概念……
夺权犯规(CBA技术犯规是一罚一掷吗)夺权犯规(CBA技术犯规是一罚一掷吗)昨天晚上的京粤大战中,王骁辉飞扑绊倒威姆斯的一幕在网络上引起了轩然大波,由于性质非常恶劣,这一行为受到了球迷们的广泛批评,裁判也明察秋毫,……
我国最早的数学著作(最伟大的10本数学书籍)我国最早的数学著作(最伟大的10本数学书籍)为了培养具有国际视野的菁英人才,力迈中美国际高中立足于未来,打破传统,大胆创新,本学期,每周三晚上学校开展特色晚自习学科之夜。……
酒店住宿记录查(如何查一个人开酒店记录)酒店住宿记录查(如何查一个人开酒店记录)实践日子中酒店的入住记载怎样查?假定说你有入住宾馆记载,那么就可以直接进入处理网络去查询自己的一个个人信息,所以在日常……
贵金属开户要多少钱(炒黄金有人赚到钱吗)贵金属开户要多少钱(炒黄金有人赚到钱吗):24Plotio百利好环球贵金属是当今热门的投资产品,贵金属市场行情十分活跃,投资者盈利的机会很多,因此现在投资贵金属的人越来越多了。……
php多线程(php和java哪个好)php多线程(php和java哪个好)微博Qzone微信PHP实现reactor单线程网络模型原创流浪剑客262021050823:12:24在各种网络模型的文章中,我们……
呕酸水怎么办?多补充碱性食物胃对我们的饮食健康是有着很大关系的,因为平时要注意保养胃。但是现在很多人忙于工作和生活,经常不合理饮食,或者不吃,或者一次吃太多,这样胃就容易出现问题。下面5号网小编带大家来看……
男子高铁拒戴口罩殴打13人被行拘随意殴打他人怎么处理在现在比较特殊的一个情况下,我们大家在出门的时候都是需要佩戴口罩的,尤其是在一些公共场合,那么我们便来了解一下男子高铁拒戴口罩殴打13人被行拘?随意殴打他人怎么处理?男子高铁拒……
睡觉时手麻是怎么回事?手麻是哪些病的隐患?每次趴着睡觉的结果,醒来手麻了。那么,手麻了是怎么回事呢?睡觉手麻的原因血管遍布我们的身体,里面流淌着鲜活的血液,如果你睡觉的时候压到手了,会导致血液循环不畅,从而引起手……
息斯敏说明书说明书要看清楚息斯敏很多人在购买的时候都没有好好看说明书,没有了解这个药品,下面5号网的小编为你们介绍息斯敏说明书,说明书要看清楚。息斯敏说明书【药品名称】通用名称:氯雷他定片……
立冬吃羊肉的好处?立冬吃羊肉有利于身体健康不少人都知道立冬吃羊肉最进补,不仅能滋补身体,还有驱寒的作用。那么也有困惑,立冬吃羊肉的好处有哪些呢?关于,立冬吃羊肉的好处?立冬吃羊肉有利于身体健康。5号网小编来为您一一解答……
济州岛维生素c一天几粒?济州岛维生素c是一款比较好的产品,大家都知道济州岛的橘子好,下面5号网的小编为你们介绍济州岛维生素c一天几粒?济州岛维生素c一天几粒【产品名称】:济州柑橘维他命C片……
吃宝塔糖有什么禁忌?宝塔糖服用注意宝塔糖虽说是孩子可以吃的,比较安全,但是在服用的时候也是有着一些注意事项的,下面5号网的小编为你们介绍吃宝塔糖有什么禁忌?宝塔糖服用注意。吃宝塔糖有什么禁忌1、肝肾功能不……
亚铁氰化钾食盐有毒吗?食盐添加亚铁氰化钾灭种?很多时候因为不知所以容易无知的错判,最近的食盐添加剂中亚铁氯化钾也是如此。那么,亚铁氰化钾食盐有毒吗?食盐添加亚铁氰化钾灭种?亚铁氰化钾食盐有毒吗食品专家告诉我们,亚铁氰……
什么是帕金森呢帕金森的危害有什么呢不知道大家在生活中听说过帕金森吗?今天小编就和大家一起来了解一下吧,究竟什么是帕金森呢,以及帕金森的危害有什么呢?如果你也想知道我们就一起来学习吧。什么是帕金森呢帕金森病……
汗蒸的最佳时间是多长汗蒸的最佳时间次数在我们平时生活中是很多人都喜欢去汗蒸,汗蒸大家应该都很熟悉,汗蒸是一种休闲项目,汗蒸好处多多,对我们的身体健康和皮肤都有好处。汗蒸的最佳时间是多长汗蒸多长时间最好,其实这……
退烧药能吃几天?退烧药吃几天好?退烧药一般是不建议吃很久的,但是很多人都不清楚吃几天好,下面5号网的小编为你们介绍退烧药能吃几天?退烧药吃几天好?退烧药能吃几天最多服3天。宝宝吃退烧药时,一般医生……
健胃消食片吃竟然瘦了健胃消食片能减肥吗通常我们大家很多人都是喜欢吃美食的,而很多人在吃的时候没有注意就很容易吃多,从而导致非常难受,因此这时就会服用健胃消食片,那么健胃消食片吃竟然瘦了?健胃消食片能减肥吗?健胃消食……