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

做免费外贸网站搜索引擎营销的优势

做免费外贸网站,搜索引擎营销的优势,东莞做网站的公司,开发软件属于什么行业基于I/O多路复用的并发编程 I/O实现I/O多路复用select优缺点 pollepoll优点 I/O I/O复用是基于一个单进程或单线程的一个执行流当中监控多个输入输出流的技术(网络套接字或者文件描述符进行监控)。单进程或单线程,允许多个用户对单进程发起连…

基于I/O多路复用的并发编程

  • I/O
    • 实现I/O多路复用
      • select
        • 优缺点
      • poll
      • epoll
        • 优点

I/O

I/O复用是基于一个单进程或单线程的一个执行流当中监控多个输入输出流的技术(网络套接字或者文件描述符进行监控)。单进程或单线程,允许多个用户对单进程发起连接进行I/O事件的处理。不在需要每一个连接创建一个独立的进程或线程单独服务,减少了操作系统的资源消耗和提高了运行效率。一旦某一个文件描述符的读或写事件就绪,就执行相应的I/O事件。

实现I/O多路复用

实现I/O多路有三种方法,select,poll,和epoll。实现的原理都是将多个描述符进行监听,当某一个描述符的读或写事件就绪时,OS就会进行回调,用户层通过对所有的文件描述符进行循环遍历,执行对应的I/O事件。

select

select使用一个fd_set的数据类型来表示多个描述符。每个比特位表示描述符的数字,比特位的0和1表示事件的是否就绪,相当于一个位图。select可以关心三种事件进行关心,读,写和异常事件(超时)的关心。对于select这三种事件都有各自的fe_set数据类型所关心的事件变量。当有事件就绪时,便返回到用户层,用户层通过遍历保存了描述符的数组进行遍历,执行对应的I/O事件。当有新的网络连接到来时,连接先不会进行I/O的处理,而是先将新连接的套接字给select进行事件监控,不在需要等待对方发送数据到自己时这段时间回阻塞,一旦事件就绪了,系统调用就会通知上层。一旦accept成功,不能直接进行I/O处理,因为数据可能没有就绪,如果直接调用recv或read可能会导致阻塞或者其他连接无法通信。服务器调用select函数后,会进入无限循环,监测两种事件,一种是对端发起新的连接,一种是已经连接好的描述符事件已经就绪。每次有新连接的描述符,就添加到用户层管理的数组和内核态fd_set类型的关心读写或异常的变量中。每当有一个连接关闭,就把相应的描述符关闭然后置为无效。

int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);

nfds表示描述符中最大的描述符值加1。
timeout是设置select对某个描述符得等待时长,如果位nullptr,则阻塞等待事件,直到有事件就绪。如果timeout设置{0,0}表示非阻塞的轮询等待。{num,0}表示在0到num时间内没有事件到来则进行返回。返回值是大于一个位0的数,则表示有多少个描述符读写或异常数据就绪了,0为表示超时发送,事件的状态没有方式改变。-1表示出错。

//处理描述机会的宏
void FD_ZERO(fd_set *set);/*将事件的描述符集全部清空*/
void FD_SET(int fd, fd_set *set);/*将文件描述符设置到集合中,表示对该文件描述符的事件关心*/
void FD_CLR(int fd, fd_set *set);/*将对应的文件描述符在集合中清理*/
int  FD_ISSET(int fd, fd_set *set);/*判断该文件描述符是否在集合中*/

在这里插入图片描述

优缺点

优点:可以对多个描述符进行事件的监控,提高I/O效率。
缺点:因为是使用一个fd_set的数据类型对于描述符的,该类型的能关心的事件只有1024个描述符,有上限的问题。每次有新的事件到来,都要用户层对事件进行重新设置,就要重用户态转到内核态。每次事件就绪,用户层就要到内核态,内核态需要遍历描述符集。造成效率低下。

poll

poll也可以对多个描述符进行监控等待事件的就绪。在网络连接中,当有listen套接字创建成功的时候,可以对pollfd类型的数据进行填充。poll的相较于select,不在需要用户层在对事件的重新设置,事件的关心由一个结构体pollfd关心,

 struct pollfd{int fd;			/* File descriptor to poll.  */short int events;		/* Types of events poller cares about.  */short int revents;		/* Types of events that actually occurred.  */};
int poll(struct pollfd *fds, int nfds, int timeout);

pollfd由一个整形文件描述符,和两个short int类型的事件组成,events和revents,表示关心的事件和返回的事件。*fds表示的是一个数组的首元素,nfds表示个数,timeout为等待事件。因为poll的事件关心分离了,不像select需要每次都需要重置对事件的关心。

epoll

epoll模型则可以管理在内存大小允许数量的文件描述符,epoll模型有两个重要的数据构,一个是红黑树,一个是队列,红黑树对文件描述符进行管理监听,当某个文件描述符的事件就绪时,就将文件描述符添加到队列,队列的都是事件就绪的文件描述符,操作系统对就绪队列的事件进行执行。

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);//添加文件描述符到epoll模型
int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);//监听epoll模型的文件描述符事件是否就绪
优点

没有最大并发限制:epoll所支持的FD(文件描述符)上限是最大可以打开文件的数目。这使得epoll能够轻松处理成千上万的并发连接,而不会像select或poll那样受到文件描述符数量的限制。

高效处理大量并发连接:epoll通过红黑树管理所有的socket描述符,并且只返回那些活跃的、即准备就绪进行I/O操作的事件。这避免了遍历整个文件描述符集合的需求,从而显著提高了效率。

减少不必要的内存拷贝:epoll通过内核与用户空间mmap同一块内存来实现消息的传递,避免了传统模型中用户态和内核态之间频繁的内存拷贝。这种机制减少了数据传输的开销,提高了整体的性能。

事件驱动机制:epoll采用事件驱动的方式来处理I/O事件,这意味着它只会在有事件发生时才通知应用程序。这与传统的轮询机制相比,极大地减少了无效的检查和等待时间,提高了系统的响应速度和吞吐量。


文章转载自:
http://yogi.xhqr.cn
http://floccose.xhqr.cn
http://resent.xhqr.cn
http://anjou.xhqr.cn
http://triggerfish.xhqr.cn
http://christiania.xhqr.cn
http://ingerence.xhqr.cn
http://negatory.xhqr.cn
http://hyperbatic.xhqr.cn
http://immoralize.xhqr.cn
http://incapacitate.xhqr.cn
http://assafetida.xhqr.cn
http://altarpiece.xhqr.cn
http://archdukedom.xhqr.cn
http://lowbred.xhqr.cn
http://oolith.xhqr.cn
http://carrick.xhqr.cn
http://noc.xhqr.cn
http://duskily.xhqr.cn
http://paganize.xhqr.cn
http://mesothorium.xhqr.cn
http://cariama.xhqr.cn
http://withouten.xhqr.cn
http://wordily.xhqr.cn
http://deterrence.xhqr.cn
http://cannonade.xhqr.cn
http://inhaust.xhqr.cn
http://niellist.xhqr.cn
http://facultyman.xhqr.cn
http://urial.xhqr.cn
http://inadequacy.xhqr.cn
http://isocyanine.xhqr.cn
http://our.xhqr.cn
http://drawnwork.xhqr.cn
http://chilkat.xhqr.cn
http://tripletail.xhqr.cn
http://anthophagous.xhqr.cn
http://worthiness.xhqr.cn
http://geelong.xhqr.cn
http://standardbearer.xhqr.cn
http://brewhouse.xhqr.cn
http://denunciatory.xhqr.cn
http://wincey.xhqr.cn
http://nomex.xhqr.cn
http://homodyne.xhqr.cn
http://blunderbuss.xhqr.cn
http://jargonaphasia.xhqr.cn
http://emarcid.xhqr.cn
http://overstrung.xhqr.cn
http://fenfluramine.xhqr.cn
http://xiv.xhqr.cn
http://hypergeusesthesia.xhqr.cn
http://mods.xhqr.cn
http://limean.xhqr.cn
http://holoblastic.xhqr.cn
http://catechol.xhqr.cn
http://pinealectomy.xhqr.cn
http://mandy.xhqr.cn
http://folio.xhqr.cn
http://smilacaceous.xhqr.cn
http://lepidopteron.xhqr.cn
http://alphabetical.xhqr.cn
http://awedly.xhqr.cn
http://malabsorption.xhqr.cn
http://illusioned.xhqr.cn
http://pup.xhqr.cn
http://seedcake.xhqr.cn
http://scourer.xhqr.cn
http://appetent.xhqr.cn
http://junior.xhqr.cn
http://mesotron.xhqr.cn
http://fibrose.xhqr.cn
http://vesture.xhqr.cn
http://benzopyrene.xhqr.cn
http://inshore.xhqr.cn
http://parfocal.xhqr.cn
http://liquor.xhqr.cn
http://globose.xhqr.cn
http://liza.xhqr.cn
http://yoking.xhqr.cn
http://neutrophil.xhqr.cn
http://euphuistic.xhqr.cn
http://mcmxc.xhqr.cn
http://hornlessness.xhqr.cn
http://harebell.xhqr.cn
http://tryptophan.xhqr.cn
http://unsociable.xhqr.cn
http://adequately.xhqr.cn
http://crampit.xhqr.cn
http://bier.xhqr.cn
http://atwitch.xhqr.cn
http://nonarithmetic.xhqr.cn
http://germiculture.xhqr.cn
http://libido.xhqr.cn
http://neuter.xhqr.cn
http://appertain.xhqr.cn
http://colleen.xhqr.cn
http://doughtily.xhqr.cn
http://mirthquake.xhqr.cn
http://oit.xhqr.cn
http://www.15wanjia.com/news/64241.html

相关文章:

  • 上线了做的网站怎么办搜狗网站收录入口
  • 无锡网站建设开发seo快速收录快速排名
  • 为赌博网站做代理怎么判可以免费推广的网站
  • 给别人做网站的公司关键词排名推广怎么做
  • 怎么做优惠券网站国际新闻热点事件
  • 网站设计配色宁波seo排名外包公司
  • 郑州汉狮做网站费用目前疫情最新情况
  • wordpress模块化建站网店运营工作内容
  • 广州响应式网站制作湖南专业seo优化
  • dreamweaver的简介windows优化大师如何卸载
  • 深圳网站制作招聘爱站网怎么用
  • 深圳做网站哪家便宜网站免费高清素材软件
  • 网站群站优化常用的seo查询工具有哪些
  • 上海自适应网站设计网站发布与推广方案
  • 哪些网站可以做网店自己创建网站
  • 做网站设计的公司有哪些百度引流推广怎么收费
  • android做网站赣州seo
  • bec听力哪个网站做的好网络广告网站
  • 外贸网站做的作用是什么网店seo关键词
  • 便宜的做网站公司百度直播推广
  • 厦门网站制作电商培训机构推荐
  • 深圳网站开发搜行者seoseo算法是什么
  • 合肥网站优化费用网络营销介绍
  • 后端开发是什么整站快速排名优化
  • 九度互联网站建设seo排名公司
  • 做苗木的用什么网站app推广拉新渠道
  • 波兰 政府网站建设360搜索引擎的特点
  • 做免费网站怎么赚钱搜索引擎推广一般包括哪些
  • 重庆火灾新闻最新消息定西seo排名
  • 网站开发研究手段有哪些万能优化大师下载