epoll及总结

使用方法:基本与poll相同
生成对象改为epoll()
将所有事件类型改为EPOLL类型epll特点
epoll 效率比select poll要高
epoll监控数量比select 要多
epoll的触发方式比pollduo(EPOLLET边缘触发)
"""
poll_server.py 完成tcp并发服务
Io多路复用实现并发建立fileno --> io对象字典用于io查找
"""
from select import *
from socket import *
s = socket()
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind(('0.0.0.0',4444))
s.listen(3)
#创建epoll对象
ep = epoll()
#建立查找字典,通过一个IO的fileno找到io对象
fdmap = {s.fileno():s}
#关注s
ep.register(s,EPOLLIN|EPOLLERR)
#循环监控IO发生
while True:fd,events = ep.poll()if fd == s.fileno():c,addr = fdmap[fd].accept()print('coonect from',addr)#关注客户端连接套接字ep.register(c,EPOLLIN|EPOLLERR)fdmap[c.fileno()]=celif events & EPOLLIN:#判断是否为POLLIN就绪data=fdmap[fd].recv(1024).decode()if not data:ep.unregister(fd)#取消关注fdmap[fd].close()del fdmap[fd]#从字典删除continueprint(data)fdmap[fd].send(b'ok')

select,poll默认都是水平触发如果操作系统监听到了io的把要处理的io发给应用层如果应用层不处理就会一直发送直到处理边缘触发相反

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

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

相关文章

webpack:css-loader和style-loader关系

测试 当我们webpack 的 rules 啥都没配置的时候 const path require(path);module.exports {entry: ./src/index.js,output: {filename: index.js,path: path.resolve(__dirname, dist)},module: {rules: []} };我们在 js 中导入了 css,发现报错,因为…

TypeScript项目配置

前言 我们需要建立tsconfig.json 作用 用于标识 TypeScript 项目的根路径; 用于配置 TypeScript 编译器; 用于指定编译的文件。 重要字段 files - 设置要编译的文件的名称; include - 设置需要进行编译的文件,支持…

Powdersigner + PostgreSql 同步表结构到pg数据库

要用Powdersigner同步表结构到PostgreSql数据库, Powdersigner 版本是 16.5,当前模型是mysql的 1,修改当前模型内容为postgresql的 Database --> Change Current DBMS 选择PostgreSQL 最大版本的(因为Powdersigner内置版本一…

错误: 找不到或无法加载主类 Main

在用git回退到上个版本后发现,无法运行项目并提示 错误: 找不到或无法加载主类 Main 可以看到Main前面的图标也是号。 查了半天没有解决,问了个大佬,大佬一下就解决掉了,本文记录下解决过程。 错误原因是编辑器无法找到代码位置&…

Java面向对象编程

设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度() A. O(log2n) B. O(1) C. O(n2) D. O(n) 答案:D 一个栈的初始状态为空。首先将元素5,4,3…

为了工作刷题

1.同步通信和异步通信有什么区别?UART、SPI和I2C分别属于什么类型的通信方式? 同步通信:在同步通信中,发送方和接收方之间使用共享的时钟信号来同步数据传输。发送方按照时钟信号的边沿(上升沿或下降沿)将数…

DP读书:《openEuler操作系统》(二)操作系统的发展史

操作系统的发展历史 操作系统的发展历史手工操作时代批处理系统多道程序系统分时操作系统CTSSMULTICS的历史UNIX和Linux的历史Debian系列Red Hat系列 DOS和Windows的历史DOS的历史:Windows的历史: Android和iOS的历史Android:iOS:…

7分钟了解ChatGPT是如何运作的

ChatGPT是现在最为热门的聊天助手应用,它使用了一个大型语言模型(LLM),即GPT-3.5。它通过大量的文本数据进行训练,以理解和生成人类语言。但是,你是否有了解过ChatGPT是如何运作的吗? 下面我们就一起通过这个视频来一起…

uni-app轮播图制作

Uni-app是一种跨平台开发框架,可以用来开发多个平台的应用程序。在Uni-app中,可以使用uni-swiper组件制作轮播图。 制作轮播图的步骤如下: 在pages文件夹中创建一个新页面,例如index.vue。 在index.vue中添加uni-swiper组件&…

C++自定义swap函数实现交换两个变量的值兼谈参数传递

C自定义swap函数实现交换两个变量的值兼谈参数传递 在C中,交换两个变量的值可以通过多种方法实现。常见的是使用临时变量,源码如下: 在上面的代码中,我们首先定义了两个变量a和b,并使用cout语句输出了它们的初始值。…

InfiniBand vs 光纤通道,存储协议的选择

数字时代,数据量爆发增长,企业越来越迫切地追求高吞吐量、低延迟和更高性能的网络基础设施,存储协议的选择变得愈发至关重要。在众多存储协议中,InfiniBand和光纤通道备受关注。本文旨在深入探讨InfiniBand和光纤通道作为存储协议…

React入门

一、react开始 1、react是什么 用于构建用户界面的JavaScript库 操作DOM呈现页面 (发送请求获取数据和处理数据不由react处理)fessbook开发 2、为什么要学 原生js操作DOM繁琐、效率低 使用原生js直接操作DOM,浏览器会进行大量重绘重排 原…

二叉树与堆

文章目录 1.树的概念及结构(先导知识,了解可跳过)1.1 什么是树1.2 树的相关概念1.3 普通树的存储结构结点的定义 2.二叉树2.1 概念2.2 现实中的二叉树2.3 特殊的二叉树2.4 二叉树的性质(笔试选择题常见)2.5 二叉树的存…

解决 Cannot read property ‘key‘ of undefined

目录 问题解决1解决2最终 问题 现场环境分页查询某些条件项查询时,分页接口获取成功但是数据不渲染,页面像是卡住了: 报错 Cannot read property key of undefined 解决1 有人说 使用的el-pagination在格式化代码的时候layout属性的参数会多加…

C# 模拟button按钮批量锁住与打开

项目需求: 当winform界面上存在多个按钮时(大于2个),用户需求为当点击其中一个按钮后,其它按钮全部为禁用,当被点击的按钮后台逻辑执行完成后,再释放所有按钮。用户可再次点击其它按钮。 此案…

常用设计模式—

一、设计模式简介 23种设计模式 1.1、设计模式七大原则 1.开闭原则 对扩展开放,对修改关闭。 2.依赖倒置原则(面向接口编程) 依赖关系通过接口、抽象类。 3.单一职责原则 一个类、接口、方法只负责一项职责或职能。 4.接口隔离原则 客…

算法之排序

文章目录 前言一、二分查找1、正常二分2、二分找第一个出现要查找的数的位置3、在旋转数组中找最小数字二分总结 一、归并排序1、正常归并2、小和问题归并总结 前言 之前我们学习了各种排序算法,今天来让我们看看在线OJ上的题目吧,有哪些排序算法有什么…

CPP-Templates-2nd--第十四章 实例化

目录 14.1 On-Demand实例化 14.2 延迟实例化 14.2.1 部分实例化和完整实例化 14.2.2 实例化组件 14.3 C实例化模型 14.3.1 两阶段查找 14.3.2 POI 14.3.3 包含式模型 14.4 几种实现方案 14.4.1 贪婪实例化 14.4.2 查询实例化 14.4.3 迭代实例化 参考:…

jvm 内存模型介绍

一、类加载子系统 1、类加载的过程:装载、链接、初始化,其中,链接又分为验证、准备和解析 装载:加载class文件 验证:确保字节流中包含信息符合当前虚拟机要求 准备:分配内存,设置初始值 解析&a…

数据分析工具有哪些,哪个好学?

Tableau、帆软BI、思迈特BI、SpeedBI数据分析云……这些都是比较常见的BI数据分析工具。从学习成本、操作难度以及数据可视化分析效果来看,SpeedBI数据分析云都表现地可圈可点。 1、不需下载安装、学习成本低 SpeedBI数据分析云是一款SaaS BI数据分析工具&#xf…