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

列出寻找网站关键词的几种途径国外平面设计教程网站

列出寻找网站关键词的几种途径,国外平面设计教程网站,什么网站自己做名片好,网络营销公司招聘上文我们成功运行了代码,本文我们将对项目的整体流程作一下讲解 如果你之前没做过相关的内容,对服务器的⾼并发模型也⼀⽆所知,不建议继续做下去,需要的前置知识有: Linux的基本命令(⭐)多进程…

上文我们成功运行了代码,本文我们将对项目的整体流程作一下讲解

如果你之前没做过相关的内容,对服务器的⾼并发模型也⼀⽆所知,不建议继续做下去,需要的前置知识有:

  • Linux的基本命令(⭐)
  • 多进程(⭐)
  • 多线程(⭐⭐⭐)
  • 网络通信(⭐⭐⭐)

项目的基本流程

我们⾸先还是先看下项⽬的⽂档,看下作者有没有提供代码的框架,有的话就简单了,对着框架图去看代码,可以迅速理清代码的模块组成,快速上⼿其他⼈的代码,然后就可以⾃⼰去写了。

我以项⽬qinguoyi/TinyWebServer at raw_version (github.com)中的框架图为例:

OIP

这个webserver流程图详细描述了从接收客户端请求到处理并响应这些请求的一系列复杂过程。下面是对这个流程图的逐步解释:

  1. 半同步/半反应堆线程池:这是整个webserver的起点,它提前创建了一个线程池(本质上是一个数组),线程池里面有多个子线程,在最开始的时候,由于没有任务,子线程(即上图的工作线程)都处在空闲状态

    为什么要使用线程池?
    当你需要限制你应用程序中同时运行的线程数时,线程池非常有用。因为启动一个新线程会带来性能开销,每个线程也会为其堆栈分配一些内存等。为了任务的并发执行,我们可以将这些任务任务传递到线程池,而不是为每个任务动态开启一个新的线程

  2. epoll监听socket:在主线程中,使用epoll机制来监听socket上的事件(如连接请求)。此时主线程只需要等待有客户端发送数据过来,做出响应,而无需处理具体的任务(这些具体的任务将会由子线程完成)

  3. 请求队列:当接收到客户端的请求时,这些请求会被放入请求队列中。这个队列一般是用list实现的,并且使用信号量来唤醒等待处理请求的子线程。

    这里的信号量可以看作是📜待办通知,它告诉子线程有任务需要做了

    而请求队列一般是用list实现,每一个node都可以看作是一个🛠任务,队列中 node的数量 == 信号量

  4. 处理任务:当信号量来唤醒(即有任务通知了),请求队列中的任务会被取出并处理。本项目中有3种不同的业务需求,如处理HTTP请求、定时器定时关闭长时间没有活动的客户端、日志输出记录

处理任务这部分可以现暂时不用细究,后面学到这个模块时再一个一个来看

服务器编程的基本框架

上面的框架可以更笼统地概括为下图:

image-20240810205743381

其中主线程是I/O处理模块,逻辑单元是一个个子线程,网络存储单元是之前安装的 MySQL

模块模块
I/O 处理单元处理客户连接,读写网络数据
逻辑单元业务进程或线程
网络存储单元数据库、文件或缓存
请求队列各单元之间的通信方式
  • I/O 处理单元是服务器管理客户连接的模块。它通常要完成以下工作:等待并接受新的客户端连接,接收客户端数据,将服务器响应数据返回给客户端。但是数据的收发不在 I/O 处理单元中执行,一般在逻辑单元中执行。
  • 一个逻辑单元通常是一个进程或线程(本项目中是线程)。它分析并处理客户数据,然后将结果传递给 I/O 处理单元。服务器通常拥有多个逻辑单元(一般线程池已经创建好了多个逻辑单元),以实现对多个客户任务的并发处理。
  • 网络存储单元可以是数据库、缓存和文件,但不是必须的。
  • 请求队列是各单元之间的通信工具。I/O 处理单元接收到客户请求时,需要以某种方式通知一个逻辑单元来处理该请求。同样,多个逻辑单元同时访问一个存储单元时,也需要采用某种机制来协调处理多个逻辑单元之间的竞争。请求队列通常被实现为线程池的一部分。

总结

本文介绍了项目的总体框架,理清了工作顺序,下一步将会按照这个顺序梳理代码

http://www.yayakq.cn/news/808276/

相关文章:

  • 有没有可以在线做化学实验的网站做pc网站排
  • 网站如何做反爬qq浏览器官网
  • 公众号制作的网站开发核心关键词举例
  • 营销网站怎么做合适山西建设工程执业注册中心网站
  • 哪个网站建设公司比较好站长工具亚洲
  • 上海新闻频道seo学途论坛网
  • 集约化网站建设项目郑州开发小程序平台
  • 长白山网站学做管理平台简述网站首页制作过程
  • 网站代运营价格windows8风格网站模板
  • 自己做的网页怎么上传网站电脑手机网站建设
  • app设计网站推荐大型门户网站系统
  • 网站做支付需要准备什么数据库和网站
  • 个人备案网站营业执照wordpress 插件 爬文章
  • 宁波建设银行网站首页ui设计线上培训
  • 沂源网站建设yx718一般网站使用什么做的
  • 久久建筑网站内搜索喂来苏州网络科技有限公司
  • 如何做招生网站网络推广网站怎么做
  • 成都网站制作计划宝塔重装WordPress
  • 2008iis7建立网站别人做的网站域名到期怎么办
  • 猎头做单都有什么网站东莞网站建设 手袋厂
  • 襄阳门户网站建设六灶网站建设
  • 牡丹江做网站建设wordpress列表分页 js
  • 马蜂窝网站怎么做ic设计公司排名
  • 寺庙 网站建设营销推广怎么做
  • 营销网站建设创意做公众号必备的网站
  • 温州中豪网站建设推广短视频培训课程
  • 顺的网站建设策划全国建设信息网
  • 湖北洈水水利水电建设公司网站上海微信网站建设公司
  • 网站源码带手机版品牌营销策划服务
  • 邢台网站建设报价阿里网站销量做不起来怎么办