day56-1 select的问题以及epoll的使用

news/2024/7/9 16:39:20 标签: epoll, 操作系统

select的问题

  1. 当进程被唤醒时,不清楚到底哪个socket有数据,只能遍历一遍
  2. 每一次select的执行,都需要将这进程,再加入到等待队列中
  3. 为了重复添加等待队列,当每一次操作完成时,也需要从等待队列中删除进程

所以select最大的限制被设置为了1024,如此看来select连多线程都比不上

于是就推出了poll和epoll

poll

  • 简单的对select进行了优化,但依旧不够完美,过渡使用,epoll才是最后的解决方案

epoll">epoll

中断程序会将内核的数据copy到socket缓冲区,然后唤醒socket的等待队列,就是epollepoll又会唤醒进程A

epoll维护了一个就绪队列

socket数据准备好的时候会执行一个回调函数,将自己的地址交给epoll

epoll将其添加到就绪列表中,即可

进程A只需要访问epoll的就序列带能够获取到就绪的socket对象

没懂

epoll如何解决select的两个问题

  1. epoll把对于等待队列的操作,与阻塞进程分开了
  2. epoll自己维护了一个等待列表,避免了遍历所有的socket

转载于:https://www.cnblogs.com/lucky75/p/11167453.html


http://www.niftyadmin.cn/n/1412633.html

相关文章

操作系统第五章:2、磁盘管理

基本概念 对于磁盘,每个磁道的扇区数并不是常量。绝大多数磁盘都有一些缺陷扇区,因此映射必须用磁盘上的其他空闲扇区来替代这些缺陷扇区。 磁盘缺陷 P表:又称为永久缺陷列表,用于记录硬盘生产过程中产生的缺陷。 G表…

多文件上传与简单操作文件上传实例(文件上传,自动重命名,自动添加文件夹)

一.多文件上传【客户端处理脚本的例子】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><meta http-equiv"Content-Language"content"zh-cn"><script>...function mCreateFile(obj…

iOS 10 的适配问题-b

随着iOS10发布的临近,大家的App都需要适配iOS10,下面是我总结的一些关于iOS10适配方面的问题,如果有错误,欢迎指出. 1.系统判断方法失效: 在你的项目中,当需要判断系统版本的话,不要使用下面的方法: #define isiOS10 ([[[[UIDevice currentDevice] systemVersion] substringToI…

windows上安装MySQL数据库

目录 Windows上安装MySQL简单的使用步骤正确的运行方式MySQL配置文件初始化数据库命令注意5.7版本需要初始化data目录Windows上安装MySQL windows上安装MySQL较为简单&#xff0c;点击链接https://dev.mysql.com/downloads/mysql/&#xff0c;但不要下载最新的版本&#xff0c;…

操作系统第七章:文件系统

文件系统基本概念 数据如何存放&#xff1f; 文件是什么&#xff1f; 所谓文件是指一组带标识&#xff08;标识即为文件名&#xff09;的&#xff0c;在逻辑上有完整意义的信息项的序列。 文件包括两部分&#xff1a; • 文件体&#xff1a;文件本身的内容&#xff1b; • 文…

day56-2 MySQL数据库的基本使用

目录 数据库基本概念数据库是什么为什么要使用数据库数据库的分类&#xff1a;数据库重要概念数据库的基本使用登录数据库MySQL5.6管理员密码的设置初步使用库的操作表的操作字段的操作数据库基本概念 数据库是什么 存储数据的仓库 列表&#xff0c;字典...等等 都是内存中的&a…

scala学习手记38 - 方法命名约定和for表达式

方法命名约定 之前在学习《运算符重载》一节时曾经说过一个方法命名约定&#xff1a;方法的第一个字符决定了方法的优先级。现在再说另一个命名约定&#xff1a;如果方法以冒号&#xff08;:&#xff09;结尾&#xff0c;则调用目标是运算符后面的实例。 比如下面这个例子&…

预防按钮的多次点击【恶意刷新】

今日在CSDN论坛上评论到这样的标题时&#xff0c;想到了该怎么解决预防"提交"按钮的多次点击的问题【prevent multiple clicks of a submit button in ASP.NET】&#xff0c;如果要是记录到数据库那不是很好的办法&#xff0c;该怎么办呢&#xff1f;想来想去我以前做…