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

重庆网站制作一般需要多少钱国内出名的室内设计公司

重庆网站制作一般需要多少钱,国内出名的室内设计公司,宝塔wordpress伪静态,桂林漓江自由行攻略文章目录 服务端处理网络请求流程图基础概念阻塞调用 vs 非阻塞调用同步处理 vs 异步处理阻塞、非阻塞 和 同步、异步的区别recvfrom 函数 五种I/O模型I/O模型1#xff1a;阻塞式 I/O 模型(blocking I/O#xff09;I/O模型2#xff1a;非阻塞式 I/O 模型(non-blocking I/O阻塞式 I/O 模型(blocking I/OI/O模型2非阻塞式 I/O 模型(non-blocking I/OI/O模型3I/O 复用模型(I/O multiplexingI/O模型4信号驱动式 I/O 模型signal-driven I/O)I/O模型5异步 I/O 模型即AIO全称asynchronous I/O 5 种 I/O 模型总结 服务端处理网络请求流程图 大致流程如下 1获取请求数据客户端与服务器建立连接发出请求服务器接受请求1-32构建响应当服务器接收完请求并在用户空间处理客户端的请求直到构建响应完成43返回数据服务器将已构建好的响应再通过内核空间的网络 I/O 发还给客户端5-7。 设计服务端并发模型时主要有如下两个关键点 1服务器如何管理连接获取输入数据2服务器如何处理请求。 以上两个关键点最终都与操作系统的 I/O 模型以及线程(进程)模型相关我们先详细看一下I/O模型 。 基础概念 阻塞调用 vs 非阻塞调用 阻塞调用是指调用结果返回之前当前线程会被挂起调用线程只有在得到结果之后才会返回非阻塞调用指在不能立刻得到结果之前该调用不会阻塞当前线程。 两者的最大区别在于被调用方在收到请求到返回结果之前的这段时间内调用方是否一直在等待。 阻塞是指调用方一直在等待而且别的事情什么都不做非阻塞是指调用方先去忙别的事情。 同步处理 vs 异步处理 同步处理是指被调用方得到最终结果之后才返回给调用方异步处理是指被调用方先返回应答然后再计算调用结果计算完最终结果后再通知并返回给调用方 阻塞、非阻塞 和 同步、异步的区别 阻塞、非阻塞和同步、异步其实针对的对象是不一样的 1阻塞、非阻塞的讨论对象是调用者2同步、异步的讨论对象是被调用者。 recvfrom 函数 recvfrom 函数(经 Socket 接收数据)这里把它视为系统调用 阻塞式 I/O 模型中的 recvfrom 是一个用于接收数据报的系统调用或函数。它通常用于网络编程中特别是在UDP协议中。这个函数会阻塞应用程序的进程直到有数据报准备好可以被接收。 具体来说recvfrom 通常用于接收来自网络的数据报例如从套接字socket中接收数据。当应用程序调用 recvfrom 时如果没有数据报可用它会等待直到有数据报到达然后将数据报的内容复制到应用程序指定的缓冲区中并返回成功。 在阻塞式 I/O 模型中这个调用会导致应用程序阻塞即应用程序的执行被暂停直到数据可用为止。这通常意味着应用程序无法执行其他操作直到 recvfrom 返回并提供接收的数据。这种模型在某些情况下非常简单但也可能导致应用程序出现延迟因为它必须等待数据的到达。 一个输入操作通常包括两个不同的阶段 1等待数据准备好 2从内核向进程复制数据。 对于一个套接字上的输入操作 第一步通常涉及等待数据从网络中到达。当所等待分组到达时它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。 实际应用程序在系统调用完成上面的 2 步操作时 调用方式的阻塞、非阻塞操作系统在处理应用程序请求时处理方式的同步、异步处理的不同可以分为 5 种 I/O 模型 五种I/O模型 I/O模型1阻塞式 I/O 模型(blocking I/O 在阻塞式 I/O 模型中应用程序在从调用 recvfrom 开始到它返回有数据报准备好这段时间是阻塞的recvfrom 返回成功后应用进程开始处理数据报。 比喻一个人在钓鱼当没鱼上钩时就坐在岸边一直等。优点程序简单在阻塞等待数据期间进程/线程挂起基本不会占用 CPU 资源。缺点每个连接需要独立的进程/线程单独处理当并发请求量大时为了维护程序内存、线程切换开销较大这种模型在实际生产中很少使用。 I/O模型2非阻塞式 I/O 模型(non-blocking I/O 在非阻塞式 I/O 模型中应用程序把一个套接口设置为非阻塞就是告诉内核当所请求的 I/O 操作无法完成时不要将进程睡眠。 而是返回一个错误应用程序基于 I/O 操作函数将不断的轮询数据是否已经准备好如果没有准备好继续轮询直到数据准备好为止 比喻边钓鱼边玩手机隔会再看看有没有鱼上钩有的话就迅速拉杆。优点不会阻塞在内核的等待数据过程每次发起的 I/O 请求可以立即返回不用阻塞等待实时性较好。缺点轮询将会不断地询问内核这将占用大量的 CPU 时间系统资源利用率较低所以一般 Web 服务器不使用这种 I/O 模型。 EWOULDBLOCK 是一个错误码或错误常量通常在网络编程和非阻塞 I/O 中使用。它表示某个操作通常是非阻塞的因为当前状态而无法立即执行但并不算是一种错误。在不同的操作系统和编程语言中它有时也被称为 EAGAIN表示 “操作再次尝试”。 当你在非阻塞模式下进行 I/O 操作如读取或写入数据有时可能会遇到 EWOULDBLOCK 错误。这通常发生在以下情况下 针对非阻塞套接字的读取操作但没有数据可供读取因此需要稍后再次尝试。针对非阻塞套接字的写入操作但发送缓冲区已满因此需要稍后再次尝试。 这并不是一种严重的错误而是提示应用程序需要稍后再次尝试相同的操作因为当前条件不允许立即执行。应用程序可以通过重新调用相同的操作来处理 EWOULDBLOCK 错误直到操作成功完成。 在C语言中通常使用 errno 变量来获取最后一次发生的错误码而 EWOULDBLOCK 可以表示为 EAGAIN。例如 if (recvfrom(socket_fd, buffer, buffer_size, 0) -1) {if (errno EWOULDBLOCK || errno EAGAIN) {// 需要稍后再次尝试} else {// 处理其他错误} }这样你可以在适当的情况下处理 EWOULDBLOCK 错误以实现非阻塞的I/O操作。 I/O模型3I/O 复用模型(I/O multiplexing 在 I/O 复用模型中会用到 Select 或 Poll 函数或 Epoll 函数(Linux 2.6 以后的内核开始支持)这两个函数也会使进程阻塞但是和阻塞 I/O 有所不同。 这两个函数可以同时阻塞多个 I/O 操作而且可以同时对多个读操作多个写操作的 I/O 函数进行检测直到有数据可读或可写时才真正调用 I/O 操作函数。 比喻放了一堆鱼竿在岸边一直守着这堆鱼竿没鱼上钩就玩手机。优点可以基于一个阻塞对象同时在多个描述符上等待就绪而不是使用多个线程(每个文件描述符一个线程)这样可以大大节省系统资源。缺点当连接数较少时效率相比多线程阻塞 I/O 模型效率较低可能延迟更大因为单个连接处理需要 2 次系统调用占用时间会有增加。 众所周之Nginx这样的高性能互联网反向代理服务器大获成功的关键就是得益于Epoll。 I/O模型4信号驱动式 I/O 模型signal-driven I/O) 在信号驱动式 I/O 模型中应用程序使用套接口进行信号驱动 I/O并安装一个信号处理函数进程继续运行并不阻塞。 当数据准备好时进程会收到一个 SIGIO 信号可以在信号处理函数中调用 I/O 操作函数处理数据。 比喻鱼竿上系了个铃铛当铃铛响就知道鱼上钩然后可以专心玩手机。优点线程并没有在等待数据时被阻塞可以提高资源的利用率。缺点信号 I/O 在大量 IO 操作时可能会因为信号队列溢出导致没法通知。 信号驱动 I/O 尽管对于处理 UDP 套接字来说有用即这种信号通知意味着到达一个数据报或者返回一个异步错误。 但是对于 TCP 而言信号驱动的 I/O 方式近乎无用因为导致这种通知的条件为数众多每一个来进行判别会消耗很大资源与前几种方式相比优势尽失。 I/O模型5异步 I/O 模型即AIO全称asynchronous I/O 由 POSIX 规范定义应用程序告知内核启动某个操作并让内核在整个操作包括将数据从内核拷贝到应用程序的缓冲区完成后通知应用程序。 这种模型与信号驱动模型的主要区别在于信号驱动 I/O 是由内核通知应用程序何时启动一个 I/O 操作而异步 I/O 模型是由内核通知应用程序 I/O 操作何时完成。 优点异步 I/O 能够充分利用 DMA 特性让 I/O 操作与计算重叠。缺点要实现真正的异步 I/O操作系统需要做大量的工作。目前 Windows 下通过 IOCP 实现了真正的异步 I/O。 而在 Linux 系统下Linux 2.6才引入目前 AIO 并不完善因此在 Linux 下实现高并发网络编程时都是以 IO 复用模型模式为主。 5 种 I/O 模型总结 从上图中我们可以看出越往后阻塞越少理论上效率也是最优。 这五种 I/O 模型中前四种属于同步 I/O因为其中真正的 I/O 操作(recvfrom)将阻塞进程/线程只有异步 I/O 模型才与 POSIX 定义的异步 I/O 相匹配。
http://www.dnsts.com.cn/news/33238.html

相关文章:

  • 个人网站设计与实现源码莒县住房和建设局网站
  • 开发网站的技术风险企业查询
  • 简易网站建设维护国外免费下载wordpress主题
  • 教育网站制作网站wordpress博客内容设计
  • 昆山seo网站优化软件南安网站建设
  • 台州网站设计飞速品物设计集团
  • 建设银行如何进行网站冻结山东省住房和城乡建设厅注册中心
  • 如何在分类信息网站做推广平台借钱哪个利息最低
  • 阳江做网站详细解读深圳网站设计 深圳信科
  • 单页网站搭建海宁长安网站开发
  • 重庆网站建设推广公司资料软件
  • 网站优化策略分析论文厨师培训机构 厨师短期培训班
  • 做平面图片的网站wordpress微信群导航模板
  • 杭州市下城区建设局门户网站aws wordpress 站群
  • 网站模板怎么设计软件网站做seo多少钱
  • 专业开发网站报价单淘宝客是以下哪个网站的会员简称
  • 免费ui网站宁波建设网谢家限价期房2004
  • 建设银行信用卡网站是哪个好百度云网站建设教程视频
  • 建设银行积分兑换商城网站学校网站管理
  • 专做五金正品的网站wordpress子站点用户无角色
  • 网站开发营销网站多少钱wordpress密码原理
  • 北京外包网站最新新闻热点事件2024
  • 马云做黄页网站时候陕西网站建设哪家专业
  • 网站 cms自建网站管理
  • 垂直门户网站有哪些在自己的网站做百度搜索框
  • 广东微信网站制作报价太原seo快速排名
  • 网站管理后台怎么做办公室设计装修
  • 厦门网站建设方案维护深圳做网站案例
  • 网站建设要多少钱appwordpress 为静态页面
  • 网站优化成本写网站论文怎么做的