IO复用-代替多线程

news/2025/1/6 13:30:50/文章来源:https://www.cnblogs.com/blogofzcfu/p/18651685

select

//select(maxfd,rset,wset,eset,timeout);  r读,w写,e错误,timeout多长时间轮询一次
//有事件就返回
//rset-->  uL fds_bites[_FD_SIZE/(8*sizeof(long))]
//#define _FD_SIZE 1024 默认值1024,内核定义fd_set rfds , rset;
FD_ZERO(&rfds);
FD_SET(sockfd,&rfds);int maxfd=sockfd;while(1){rset=rfds;int nready=select(maxfd+1,&rset,NULL,NULL,NULL);//事件个数if(FD_ISSET(sockfd,&rset)){int clientfd=accept(sockfd,(struct sockaddr*)&clientaddr,&len);FD_SET(clientfd,&rfds);maxfd=clientfd;}int i=0;for(i=sockfd+1;i<=maxfd;i++){if(FD_SET(i,&rset)){// 读事件,发送//FD_CLR(i,&rfds);close(i);//第一层bit_set。第二层系统io}}
}

缺点:
内核每一次都需要拷贝rset,拷贝整个,有很多不需要;IO数量有限制;参数较多,许都需要单独维护

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/863793.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15C++循环结构-while循环(2)——教学

1、while语句的应用; 2、双精度实数double及科学计数法; 3、分数化为小数一、while语句的应用 (第44课 角谷猜想)参考视频1 问题:对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1,这就是由日本数学家角谷静夫发现的…

Xshell 8 Build 0065中文免安装绿色版

前言 Xshell8是一个非常受欢迎的远程连接管理软件,它的界面简单易懂,用起来特别方便。能支持好多种连接方式,比如SSH1、SSH2、SFTP、TELNET等等,还有串行协议和其他一些高级功能,基本上你想连什么都能满足。而且,它还支持好多种不同的终端类型,比如VT100、VT220、XTERM、…

大语言模型提示技巧(四)-文本概括

文本概括是大语言模型的常用功能之一,我们总结一段文字、一篇文章的主要内容,一篇论文的摘要,甚至一本书的简介都属于文本概括的范畴。文本概括是大语言模型的常用功能之一,我们总结一段文字、一篇文章的主要内容,一篇论文的摘要,甚至一本书的简介都属于文本概括的范畴。…

软件设计师考试知识点

https://www.cnblogs.com/mh20131118/p/11334612.html https://www.cnblogs.com/blog-cjz/p/16005106.html 本人已将笔记、历年真题与解析、备考方法整理压缩至【百度网盘】,需要资源的同学可以通过点击下面云盘链接进行保存下载。链接失效的话请在文章下面评论或私信我,我看…

DVWA靶场Insecure CAPTCHA(不安全验证)漏洞所有级别通关教程及源码审计

Insecure CAPTCHA(不安全验证) Insecure CAPTCHA(不安全验证)漏洞指的是在实现 CAPTCHA(完全自动化公共图灵测试区分计算机和人类)机制时,未能有效保护用户输入的验证信息,从而使得攻击者能够绕过或破解该验证机制。这类漏洞通常出现在网络应用程序中,目的是防止自动化…

摄影

曝光三要素 光圈(F):控制进光量的装置 快门(1/x):接收光线的时间 感光度(ISO):感光器件对光线的敏感程度 快门(1/x) 快门快 数值小 画面暗 快门慢 数值大 画面亮 快门影响画面动态模糊(如果要保证拍摄的物体,不模糊,快速速度要大于物体运动的速度) 安全快门:保证…

浅谈文本匹配

本文探讨了文本匹配的演变,从字面匹配到语义匹配,分析了各自的特点与挑战。字面匹配关注文本的精确重合度,而语义匹配则试图理解文本的深层含义。尽管语义匹配在处理复杂关系时更具优势,但仍面临长短文本匹配、词序感知和多实体关系等难题。期待未来大模型能进一步提升语义…

记第一次DC靶场渗透

前言:听了朋友的说渗透可以快速入门,心血来潮去刷了DC-1这个靶场,结果老实了,跟着wp做了一遍,许多不懂的地方就去搜知识点,记了个笔记也是花了1天左右的时间。顺便水一篇博客借鉴的WP: DC-1靶场搭建及渗透实战详细过程(DC靶场系列) 开始渗透之旅: 前置: DC靶场网上一…

[网络] 反向代理与内网穿透:FRPC

缘起: GradioGradio是一款快速构建AI Web演示应用的Python Web框架(主要适用于科研、实验室,而非ToC的Web应用),其支持本地运行和远程访问。1个极简的Gradio代码:app.pyimport gradio as gr # 导入gradio库,gradio用于快速创建机器学习模型的web界面# 定义一个名为greet…

windows11使用pycharm连接wsl2开发基于poetry的python项目

windows11使用pycharm连接wsl2开发基于poetry的python项目 背景:公司开发的python项目用到了某个只提供了Linux版本的包,遂研究了一番如何在windows环境下进行开发。windows安装 wsl2 进入到wsl2中,安装对应的python版本,建议使用pyenv,下面以3.10.14版本为例子。 pyenv安…

【反爬虫】接口安全的风控介绍

#风控 #接口信息安全 #业务线 一、接口反爬背景二、反爬数据流框架介绍2.1 数据接入风控2.2 风险感知和策略迭代2.2.1 短线近实时监控告警2.2.2 风控策略部署2.3 异常流量处置能力2.4 网关验签组件的设计和应用2.4.1 验签整体架构2.4.2 接口验签加密流程三、反爬效果体现3.1 普…

发布blazor应用到Linux, 使用nginx作为WebSocket代理

Blazor 使用了SignalR连接, 而SignalR使用的是WebSocket WebSocket协议提供了一种创建支持客户端和服务器之间实时双向通信的 Web 应用程序的方法。作为 HTML5 的一部分,WebSocket 使开发此类应用程序比以前的方法容易得多。大多数现代浏览器都支持 WebSocket,包括 Chrome、F…