创建并初始化线程池
创建并初始化线程池–》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 服务器已准备好向客户端发送数据。
- 有可写事件,写完所有数据。
相关文章:
创建并初始化线程池
创建并初始化线程池–》threadpool.h, 创建并初始化&脱离(执行完后)子线程,每个子线程信号量wait阻塞【1】 创建套接字:int listenfd socket( PF_INET, SOCK_STREAM, 0 ); 端口复用:setsockopt( listenfd, SOL_SOCKET, SO_REUSEADDR, &a…...
【LeetCode热题100】--136.只出现一次的数字
136.只出现一次的数字 使用哈希表: class Solution {public int singleNumber(int[] nums) {Map<Integer,Integer> map new HashMap<>();for(int num:nums){Integer count map.get(num);if(count null){count 1;}else{count;}map.put(num,count);}…...
Java idea查看自定义注解的调用地方
Java idea查看自定义注解的调用地方...
ReLU激活函数
LeakyReLU激活函数的具体用法请查看此篇博客:LeakyReLU激活函数 ReLU(Rectified Linear Unit)激活函数是深度学习中最常用的激活函数之一,它的数学表达式如下: 在这里,(x) 是输入,(f(x)) 是输…...
【Android】adjustViewBounds 的理解和使用
理解 adjustViewBounds 是一个 ImageView 的属性,用于调整 ImageView 的边界以适应图像的尺寸。当设置为 true 时,ImageView 的边界将根据图像的宽高比例进行调整,以确保图像完全显示在 ImageView 内部。 理解和使用 adjustViewBounds 的步…...
Redis知识补充
大key删除 unLink scan分批删除 渐进式rehash Redis笔记:Redis的字典什么时候进行Rehash?_redis什么时候进行rehash-CSDN博客...
IIS 部署.NetCore,最细步骤
服务器安装环境 将.net core程序部署到IIS总体需要经过以下3个大步骤,其中在IIS上配置网站有些比较繁琐,我都会逐一给出详细步骤。 <1>安装IIS和.NetCORE运行时程序 <2>以文件的形式发布.NETCORE程序到指定目录 <3>IIS上面建立网站…...
4.查询用户的累计消费金额及VIP等级
思路分析: (1)按照user_id及create_date 分组求消费金额total_amount (2)开窗计算同user_id下的累计销售金额sum(total_amount) over(partition by user_id order by create_date ROWS BETWEEN UNBOUNDED PRECEDING AN…...
解决MySQL错误-this is incompatible with sql_mode=only_full_group_by
报错 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘数据库名.表名.字段名’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by 原因 MySQL错误-t…...
UDP通信-广播、组播
UDP的三种通信方式 单播:单台主机与单台主机之间的通信。 广播:当前主机与所在网络中的所有主机通信。 组播:当前主机与选定的一组主机的通信。 UDP如何实现广播 使用广播地址:255.255.255.255 具体操作: 发送端…...
10-bean创建流程1一finishBeanFactoryInitialization(ConfigurableListableBeanFactory
文章目录 1. 方法的主要流程2. ConversionService-如何自定义转换器3. AbstractBeanFactory#getMergedLocalBeanDefinition(String beanName)4.FactoryBean实例化5.内置值处理器1. 方法的主要流程 /*** Finish the initialization of this contexts bean factory,* initializi…...
专题三:穷举、暴搜、深搜、回溯、剪枝【递归、搜索、回溯】
1、全排列 class Solution { public:vector<vector<int>> ret;vector<int> path;bool check[7];void dfs(vector<int>& nums){if(nums.size() path.size()) {ret.push_back(path);return;}for(int i 0;i < nums.size();i){if(check[i] fals…...
国科云SSL证书讲堂:SSL证书安装常见问题盘点
SSL证书能够对网站传输数据进行加密处理,有效提升网站的数据安全防护能力,逐渐被越来越多的政企网站所应用。但在安装使用SSL证书时,经常会发生各种意想不到的问题,对网站的数据安全和正常访问造成严重影响。本文国科云对安装使用…...
Python3无法调用Sqlalchemy解决(mysqldb)
原因 在安装Sqlalchemy后运行程序报错 无法导入mysqldb,缺失模块 ImportError: No module named ‘MySQLdb’ 既然缺少 MySQLdb 这个模块,尝试按照正常的想法执行 pip install MySQLdbpip install mysql-python 应该能解决,但是却找不到…...
2023/10/15总结
学习总结 最近开始写项目了,然后写的过程中遇到了跨域问题。 为什么会出现跨域问题 由于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也是最基本的安全功能。如果缺少了同源策略,那么浏览器的正常功能可能都会收到影响。所谓…...
关于图像分割SDK的一些基础认识
随着科技的不断发展,图像分割SDK已经成为了一个备受关注的话题。而在众多图像分割SDK中,美摄图像分割SDK以其独特的功能和优势脱颖而出。本文将从美摄图像分割SDK的企业价值和互联网娱乐方面,介绍其宣传文章的具体写作规范。 在企业价值方面&…...
SpringMVC之国际化上传下载
spring项目中的国际化 1)提供中英两种资源文件 i18n_en_US.properties i18n_zh_CN.properties 2)配置国际化资源文件(在spring配置文件中添加,例如spring-mvc.xml) <bean id"messageSource" class&quo…...
TigerVNC自动设置密码脚本
新建sh脚本,复制以下命令。设置ssh终端密码和vncserver密码后,运行ssh脚本,即可设置修改vncserver密码。 #!/bin/bash vncpwd"vncserver密码" sshpwd"ssh终端密码"expect << EOFset timeout 10spawn ssh root127.…...
什么是美体SDK?美摄美颜美体SDK对接开发指南
在当今的数字世界中,人们对自我表达和形象展示的需求越来越高。美体SDK应运而生,为用户提供了一种全新的美颜美体体验,让每一个人都能享受到个性化的美丽与自信。 一、美体SDK的特点 轻量级:美体SDK体积小巧,不会对用…...
【Java集合中各种数据结构的方法汇总】
文章目录 Java集合中各种数据结构的方法汇总数组 ArrayList 、LinkedList链表 LinkedList栈 Stack队列 ArrayQueue、LinkedList哈希表 HashMap堆 PriorityQueue Java集合中各种数据结构的方法汇总 获取大小:fun.size(); 判断是否为空:fun.isEmpty(); …...
手把手教你为本地LLM(Llama/Qwen)实现打字机式流式输出,Gradio+Transformers保姆级教程
手把手教你为本地LLM实现打字机式流式输出:Gradio与Transformers深度整合指南 当我们在本地部署大语言模型时,最令人沮丧的体验莫过于盯着进度条等待完整响应。想象一下这样的场景:你向模型提出一个复杂问题,屏幕陷入长达十几秒的…...
51单片机之按键控制RGB灯
51单片机之按键控制RGB灯描述:利用KEIL5编程,使AT89C52通过按键输入控制RGB灯显示不同颜色。硬件:电路仿真图(未运行)电路仿真图(运行)程序:主要是按键消抖,机械按键按下…...
从IPv4到IPv6迁移实战:在eNSP里排查那些容易被忽略的安全配置(避坑指南)
从IPv4到IPv6迁移实战:eNSP环境下的安全配置深度排查指南 当企业网络从IPv4向IPv6过渡时,工程师们常常会陷入一种"配置惯性"——沿用IPv4时代的安全策略直接套用到IPv6环境。这种思维定式往往会导致网络出现各种"隐形漏洞"。本文将通…...
告别Vue组件匿名时代:用vite-plugin-vue-setup-extend给你的<script setup>加个名字
为Vue组件正名:vite-plugin-vue-setup-extend深度整合指南 在Vue 3的组合式API开发中,<script setup>语法糖以其简洁性赢得了开发者的青睐。但当你打开Vue DevTools准备调试时,满屏的"Anonymous Component"是否曾让你感到困扰…...
手把手教你用逻辑分析仪抓取DVC1124的I2C波形(附CRC校验分析)
手把手教你用逻辑分析仪抓取DVC1124的I2C波形(附CRC校验分析) 在嵌入式硬件调试中,I2C通信的波形分析是验证设备交互正确性的关键步骤。集澈DVC1124作为一款高性能AFE芯片,其I2C协议中独特的CRC校验机制为通信可靠性提供了保障。本…...
【稀缺预警】Python 3.14 JIT编译器深度剖析:3类隐性CPU浪费模式+2套自动降本脚本(附真实AWS账单对比图)
第一章:Python 3.14 JIT编译器的演进逻辑与成本敏感性定位Python 3.14 并非官方发布的正式版本(截至2024年,CPython最新稳定版为3.12,3.13处于预发布阶段),但本章以假设性技术前瞻视角,探讨若Py…...
在国产麒麟V10系统上,用kubeadm一步步搭建3个master节点的k8s高可用集群(含haproxy+keepalived配置)
国产麒麟V10系统上构建高可用Kubernetes集群实战指南 在信息技术自主可控的大背景下,国产操作系统正逐步成为企业级基础设施的重要选择。本文将详细介绍如何在麒麟V10(Kylin V10)操作系统上,从零开始搭建一个包含3个Master节点的高…...
高效音频获取与资源管理:喜马拉雅下载工具全解析
高效音频获取与资源管理:喜马拉雅下载工具全解析 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 在数字内容消费时代&a…...
MySQL 数据恢复利器:my2sql 实战解析与应用场景
1. my2sql 是什么?为什么你需要它? 如果你负责过MySQL数据库运维,肯定遇到过这样的场景:开发同事不小心执行了DELETE FROM users WHERE id1,然后慌慌张张跑过来问你能不能恢复数据。这时候如果只有全量备份binlog的传统…...
Granite TimeSeries FlowState R1实战:基于卷积神经网络(CNN)的时序特征提取进阶
Granite TimeSeries FlowState R1实战:基于卷积神经网络(CNN)的时序特征提取进阶 你是不是也遇到过这样的问题?面对一长串传感器读数、股票价格波动或者服务器监控数据,感觉信息量巨大,却不知道从哪里入手…...
