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

创建并初始化线程池

创建并初始化线程池–》threadpool.h, 创建并初始化&脱离(执行完后)子线程,每个子线程信号量wait阻塞【1】
创建套接字:int listenfd = socket( PF_INET, SOCK_STREAM, 0 );
端口复用:setsockopt( listenfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof( reuse ) );
绑定:ret = bind( listenfd, ( struct sockaddr* )&address, sizeof( address ) );
监听:ret = listen( listenfd, 5 );
多路复用:addfd( epollfd, listenfd, false );
while无限循环,使用 epoll_wait 函数等待事件发生
- 新客户端连接进来,accept连接,初始化连接信息,把描述符添加到epoll队列中。
- 有可读事件,主线程读取所有数据,把连接数据加到线程池,任务添加到请求队列,唤醒等待中的线程m_queuestat.post(); -->子线程被唤醒执行,取出任务队列中的第一个任务执行,也就是解析请求的过程,当得到一个正确的HTTP请求时,我们分析目标文件的属性,如果目标文件存在、对所有用户可读且不是目录,则使用mmap将其映射到内存地址m_file_address处,并告诉调用者获取文件成功。根据解析的HTTP请求内容生成响应,修改epoll队列事件类型,告诉
epoll 服务器已准备好向客户端发送数据。
- 有可写事件,写完所有数据。

http://www.lryc.cn/news/194808.html

相关文章:

  • 【LeetCode热题100】--136.只出现一次的数字
  • Java idea查看自定义注解的调用地方
  • ReLU激活函数
  • 【Android】adjustViewBounds 的理解和使用
  • Redis知识补充
  • IIS 部署.NetCore,最细步骤
  • 4.查询用户的累计消费金额及VIP等级
  • 解决MySQL错误-this is incompatible with sql_mode=only_full_group_by
  • UDP通信-广播、组播
  • 10-bean创建流程1一finishBeanFactoryInitialization(ConfigurableListableBeanFactory
  • 专题三:穷举、暴搜、深搜、回溯、剪枝【递归、搜索、回溯】
  • 国科云SSL证书讲堂:SSL证书安装常见问题盘点
  • Python3无法调用Sqlalchemy解决(mysqldb)
  • 2023/10/15总结
  • 关于图像分割SDK的一些基础认识
  • SpringMVC之国际化上传下载
  • TigerVNC自动设置密码脚本
  • 什么是美体SDK?美摄美颜美体SDK对接开发指南
  • 【Java集合中各种数据结构的方法汇总】
  • 算法通过村第十四关-堆|白银笔记|经典问题
  • 如何正确维护实验室超声波清洗器?
  • DID赛道前列的生物识别技术,开启Web3时代的大门—MXT
  • Java基础面试-final
  • 全波形反演的目标和技术
  • 【SA8295P 源码分析】105 - QNX MISC分区读写、切换A/B启动槽、读取开机次数命令 swdl_utils 介绍 及 祼分区读写 代码实现
  • Grade 5 Math
  • 简易的慢SQL自定义告警实战经验(支持多数据源)
  • 【Springboot】Filter 过滤器的使用
  • 力扣-461.汉明距离
  • GEE 18:基于GEE平台的土地荒漠化监测与分析【论文复现】