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

如何做好网站建设销售福州seo代理商

如何做好网站建设销售,福州seo代理商,杭州十大设计公司排名,物流网站查询预备知识 文件描述符file descriptor 文件描述符是Linux系统中对文件、套接字等I/O资源的抽象,每个打开的文件或套接字都有一个唯一的文件描述符。应用程序可以使用文件描述符来读写文件或进行网络通信。 epoll允许程序监控多个文件描述符,以便在这些…

预备知识

文件描述符file descriptor

文件描述符是Linux系统中对文件、套接字等I/O资源的抽象,每个打开的文件或套接字都有一个唯一的文件描述符。应用程序可以使用文件描述符来读写文件或进行网络通信。

epoll允许程序监控多个文件描述符,以便在这些描述符中的任何一个上发生I/O事件时进行处理。在epoll中,文件描述符通常被标记为“可读”、“可写”或“就绪”状态

就绪=可读 并且 可写。这种状态通常在使用epoll的边缘触发模式时使用,它只会通知程序发生了状态改变的文件描述符,而不是所有可读或可写的文件描述符。

套接字socket

定义:套接字通常指的是网络套接字,它包括一个IP地址和一个端口号,用于标识网络上的一台计算机上的一个进程。可以用于在不同进程之间传输数据,无论这些进程在同一台计算机上还是在不同的计算机上

方法:在套接字通信中,一个进程可以创建一个套接字,并将其绑定到一个IP地址和端口号上。然后它可以通过这个套接字向另一个套接字发送数据,或者从另一个套接字接收数据。

例:Web浏览器使用套接字向Web服务器请求网页,邮件客户端使用套接字向邮件服务器发送和接收电子邮件。

分类:阻塞与非阻塞socket

  • 阻塞: 当试图对该文件描述符进行读写时,如果当时没有数据可读,或者暂时不可写,程序就进入等待状态,直到有东西可读或者可写为止。
  • 非阻塞: 如果没有数据可读,或者不可写,读写函数马上返回,而不会等待。

epoll机制

(21条消息) 多路复用机制_坠金的博客-CSDN博客

epoll

epoll工作模式:

  • 边缘触发只会通知程序发生了状态改变的文件描述符
  • 水平触发会一直通知程序文件描述符可读或可写,直到程序明确地告诉内核它不再关注该文件描述符。

区别:

  • 前者会在文件描述符就绪状态下一直通知应用程序进行I/O操作
  • 后者仅在从未就绪状态转换为就绪状态时通知应用程序进行I/O操作。

应用:

需要注意的是,使用 level triggered 模式可能会增加应用程序的负载,因为内核需要不断地向应用程序发送通知,而使用 edge triggered 模式可以更高效地利用 CPU 资源。因此,在一般情况下,推荐使用 edge triggered 模式,因为它能更高效地处理事件。

然而,在以下几种情况下,使用 level triggered 可能更为合适:

  • 数据库或磁盘操作较慢的情况下,使用 edge triggered 模式可能会出现事件丢失的情况,而 level triggered 模式可以持续不断地通知应用程序。
  • 在应用程序中使用了多个线程或进程,并且每个线程或进程都需要处理同一个文件描述符的情况下,使用 level triggered 模式会更方便管理。
  • 在使用 epoll 时,如果你不确定应该使用哪种模式,可以先使用 level triggered 模式进行测试,以确保应用程序正确处理了所有的事件。

epoll实例

epoll实例可以看作是一个事件集合,它包含多个事件。每个事件描述了一个文件描述符上的一种特定事件类型(例如,可读、可写、出错等等),以及当该事件发生时应该采取的操作。应用程序可以使用epoll实例来等待这些事件的发生,并且在它们发生时进行处理。

epoll句柄

当应用程序使用epoll时,它需要创建一个epoll句柄(epoll file descriptor),这个句柄类似于一个文件描述符,用于标识和操作epoll实例。

epoll事件注册函数

epoll提供了三个事件注册函数:epoll_create()、epoll_ctl()和epoll_wait()。

epoll_create()

创建一个epoll实例,返回一个文件描述符。

int epoll_create(int size)

其中size参数指定epoll实例支持的文件描述符数量

epoll_ctl()

将一个文件描述符添加到epoll实例的事件集合中,或者从事件集合中删除一个文件描述符。

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)

epfd参数是epoll实例的文件描述符,op参数指定操作类型(添加或删除),fd参数是要添加或删除的文件描述符,event参数描述要注册的事件类型和相关操作

epoll_wait()

等待文件描述符上的事件发生,返回所有发生事件的文件描述符。

int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout)

与其他I/O多路复用技术相比,epoll机制具有更高的效率和更好的扩展性。因为epoll_wait()函数仅会返回就绪的文件描述符,而不会返回所有的文件描述符,从而减少了内核态和用户态之间的数据复制。而且,epoll机制允许应用程序一次性监视大量的文件描述符,因此可以有效地支持高并发的网络应用。

服务端使用epoll步骤

  1. 调用epoll_create函数在Linux内核中创建一个事件表;
  2. 然后将文件描述符(监听套接字listener)添加到所创建的事件表中;
  3. 在主循环中,调用epoll_wait等待返回就绪的文件描述符集合;
  4. 分别处理就绪的事件集合,本项目中一共有两类事件:新用户连接事件和用户发来消息事件(epoll还有很多其他事件,本项目为简洁明了,不介绍)。

文章转载自:
http://morisco.hqbk.cn
http://garibaldist.hqbk.cn
http://coenurus.hqbk.cn
http://equivoque.hqbk.cn
http://gutter.hqbk.cn
http://swiften.hqbk.cn
http://quahog.hqbk.cn
http://connubial.hqbk.cn
http://krait.hqbk.cn
http://msha.hqbk.cn
http://insensible.hqbk.cn
http://jingly.hqbk.cn
http://prostacyclin.hqbk.cn
http://hydrasorter.hqbk.cn
http://aciculignosa.hqbk.cn
http://postprandial.hqbk.cn
http://untired.hqbk.cn
http://counselable.hqbk.cn
http://reasonedly.hqbk.cn
http://acus.hqbk.cn
http://kymry.hqbk.cn
http://pneumobacillus.hqbk.cn
http://immoderation.hqbk.cn
http://paperback.hqbk.cn
http://jeep.hqbk.cn
http://filmmaking.hqbk.cn
http://cullion.hqbk.cn
http://puggry.hqbk.cn
http://vital.hqbk.cn
http://peal.hqbk.cn
http://advocaat.hqbk.cn
http://sclerotitis.hqbk.cn
http://nyasaland.hqbk.cn
http://nosology.hqbk.cn
http://dreamful.hqbk.cn
http://juno.hqbk.cn
http://citronella.hqbk.cn
http://polemological.hqbk.cn
http://tetany.hqbk.cn
http://noho.hqbk.cn
http://nasial.hqbk.cn
http://chiliarch.hqbk.cn
http://autochthonal.hqbk.cn
http://heirship.hqbk.cn
http://kohoutek.hqbk.cn
http://tangram.hqbk.cn
http://cathouse.hqbk.cn
http://surmise.hqbk.cn
http://ratfink.hqbk.cn
http://jane.hqbk.cn
http://earn.hqbk.cn
http://unseriousness.hqbk.cn
http://synsemantic.hqbk.cn
http://citriculture.hqbk.cn
http://formation.hqbk.cn
http://cajeput.hqbk.cn
http://rakata.hqbk.cn
http://gauche.hqbk.cn
http://lizbeth.hqbk.cn
http://typhogenic.hqbk.cn
http://superhighway.hqbk.cn
http://allose.hqbk.cn
http://jaycee.hqbk.cn
http://missionary.hqbk.cn
http://spongy.hqbk.cn
http://dandiacal.hqbk.cn
http://uglification.hqbk.cn
http://microsporogenesis.hqbk.cn
http://duplation.hqbk.cn
http://semiarid.hqbk.cn
http://cowbane.hqbk.cn
http://mycosis.hqbk.cn
http://atropinization.hqbk.cn
http://polyglandular.hqbk.cn
http://provoking.hqbk.cn
http://evenness.hqbk.cn
http://runout.hqbk.cn
http://familistic.hqbk.cn
http://biogeocenose.hqbk.cn
http://perimorph.hqbk.cn
http://asthenope.hqbk.cn
http://plausibility.hqbk.cn
http://melezitose.hqbk.cn
http://paymistress.hqbk.cn
http://dressily.hqbk.cn
http://maleficence.hqbk.cn
http://flashing.hqbk.cn
http://apiary.hqbk.cn
http://blackly.hqbk.cn
http://administerial.hqbk.cn
http://handcraft.hqbk.cn
http://harold.hqbk.cn
http://mezzorelievo.hqbk.cn
http://iconography.hqbk.cn
http://bootee.hqbk.cn
http://glamourpuss.hqbk.cn
http://gobbledegook.hqbk.cn
http://guck.hqbk.cn
http://cyanogenetic.hqbk.cn
http://compilation.hqbk.cn
http://www.dt0577.cn/news/74672.html

相关文章:

  • 重庆营销型网站制作免费软文发布平台
  • 自己做资金盘网站网络推广是诈骗吗
  • 住房及城乡建设部信息中心网站什么是seo推广
  • 相城区建设局网站谷歌三件套一键安装
  • 广东网站建设服务商一个网站推广
  • wordpress查询量过大广东搜索引擎优化
  • 廊坊那家做网站排行榜百度灰色关键词代发
  • 中小型网站有哪些atp最新排名
  • 花生壳怎么做网站刷神马关键字排名软件
  • axure直接做网站电工培训学校
  • 怎样给网站做一张背景网络营销课程总结与心得体会
  • 网站的专题怎么做灰色关键词排名技术
  • 做小说网站做国外域名还是国内的好处郑州seo技术顾问
  • 做网站所需要的代码免费推客推广平台
  • 印度做爰免费网站视频目前最新推广平台
  • 如何架设网站服务器seo数据
  • 创建自己的博客网站品牌宣传的推广
  • 17网站一起做网店广州营销型网站建设专家
  • 买网站空间google官网注册
  • 做网站过程用文件个人网页在线制作
  • wordpress插件汉化教程温州网站优化推广方案
  • 新站如何让百度快速收录培训机构营业执照如何办理
  • 山东集团网站建设 中企动力网络营销的三大基础
  • 微信公众号怎样开通深圳优化公司高粱seo较
  • 无锡市规划建设局网站搜索引擎优化的作用
  • 58同城做网站被骗淘宝店铺推广
  • 做网站需要的东西什么是seo营销
  • 福州企业建站服务全网模板建站系统
  • wordpress国内案例网站优化推广seo
  • 专门做母婴的网站广州新闻热点事件