应用程序中最广泛用到的是 BSD UNIX 中引入的 select()系统调用,其原型如下

int select(int numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,struct timeval *timeout);

  其中 readfds、writefds、exceptfds 分别是被 select()监视的读、写和异常处理的文件描述符集合,numfds 的值是需要检查的号码最高的文件描述符加 1。timeout 参数是
一个指向 struct timeval 类型的指针,它可以使 select()在等待 timeout 时间后若没有文件描述符准备好则返回 
timeval 结构体定义

struct timeval
{int tv_sec; /* 秒 */int tv_usec; /* 微妙 */
};

下列操作用来设置、清除、判断文件描述符集合。
FD_ZERO(fd_set *set)
清除一个文件描述符集。
FD_SET(int fd,fd_set *set)
将一个文件描述符加入文件描述符集中。
FD_CLR(int fd,fd_set *set)
将一个文件描述符从文件描述符集中清除。
FD_ISSET(int fd,fd_set *set)
判断文件描述符是否被置位

由于调用select的时候,每个驱动的poll函数接口都会被调用到,实际上执行select的进程被挂到了每个驱动的等待队列上。可以被任何一个驱动唤醒  

转载于:https://www.cnblogs.com/liushuhe1990/p/9618669.html

select机制的原理相关推荐

  1. Redis数据持久化机制AOF原理分析一---转

    http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/artic ...

  2. Java 数据交换格式反射机制SpringIOC原理分析

    数据交换格式&反射机制&SpringIOC原理分析 什么是数据交换格式? 数据交换格式使用场景 JSON简单使用 什么是JSON? JSON格式的分类 常用JSON解析框架 使用fas ...

  3. 【MySQL进阶】MySQL事务隔离与锁机制底层原理万字总结(建议收藏!!)

    [MySQL进阶]MySQL事务隔离与锁机制底层原理万字总结(建议收藏!!) 参考资料: 美团技术团队:Innodb中事务隔离级别和锁的关系 数据库的锁,到底锁的是什么? 阿里面试:说说一致性读实现原 ...

  4. Redis数据持久化机制AOF原理分析二

    本文所引用的源码全部来自Redis2.8.2版本. Redis AOF数据持久化机制的实现相关代码是redis.c, redis.h, aof.c, bio.c, rio.c, config.c 在阅 ...

  5. Mysql锁机制及原理简析

    Mysql锁机制及原理简析 一.前言 1.什么是锁? 锁是计算机协调多个进程或线程并发访问某一资源的机制. 锁保证数据并发访问的一致性.有效性: 锁冲突也是影响数据库并发访问性能的一个重要因素. 锁是 ...

  6. Mysql事务回滚机制与原理

    Mysql事务回滚机制与原理 文章目录 Mysql事务回滚机制与原理 一.事务回滚机制 二.使用到的技术讨论 三.redo log和undo log介绍 3.1 redo log 3.2 undo l ...

  7. mysql默认锁机制是什么_MySQL中锁机制的原理是什么

    MySQL中锁机制的原理是什么 发布时间:2020-12-08 14:48:30 来源:亿速云 阅读:81 作者:Leah MySQL中锁机制的原理是什么?针对这个问题,这篇文章详细介绍了相对应的分析 ...

  8. Java序列化的机制和原理

    有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍. Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述 ...

  9. android handler的机制和原理_一文搞懂handler:彻底明白Android消息机制的原理及源码

    提起Android消息机制,想必都不陌生.其中包含三个部分:Handler,MessageQueue以及Looper,三者共同协作,完成消息机制的运行.本篇文章将由浅入深解析Android消息机制的运 ...

  10. Android 为什么要有handler机制?handler机制的原理

    为什么要有handler机制? 在Android的UI开发中,我们经常会使用Handler来控制主UI程序的界面变化.有关Handler的作用,我们总结为:与其他线程协同工作,接收其他线程的消息并通过 ...

最新文章

  1. 改变shell read命令的隔符
  2. 贪心 ---- Codeforces Global Round 8,B. Codeforces Subsequences[贪心,贪的乘法原理]
  3. WindowsServer2003服务器
  4. 基于ArcGIS JS API 4.11实现对FeatureLayer的多变量渲染
  5. jvm Classload method介绍
  6. 每天坚持不懈的写软文,得到的几点心得感悟
  7. [Electron]仿写一个课堂随机点名小项目
  8. JAVA学习笔记——JAVA基础语法之精华
  9. 网络爬虫之java基础篇QueryRunner(Ⅲ)
  10. Java 匿名内部类解析
  11. (转)Spring Boot (十):邮件服务
  12. 笨办法学 Python · 续 第一部分:预备知识
  13. 蓝桥杯 ALGO-94 算法训练 新生舞会
  14. jsx中如何解决{if…else…}的问题
  15. pandas 数据分析 相关性_Pandas库学习笔记2-Pandas数据特征分析
  16. 截止2021年7月中国有多少大学生?
  17. 2017 CCCC预赛总结
  18. word自动添加题注,带章节编号并根据章节重新开始编号
  19. 游戏开发九宫格战斗架构解析具体解释
  20. canvas-随机粒子特效

热门文章

  1. 用Asp.net制作顶部导航控件
  2. 分享一个vue项目“脚手架”项目的实现步骤
  3. FTP协议的命令与返回码
  4. Tomcat部署到CentOS7
  5. 懒加载的3种实现方式
  6. LOJ 6278 数列分块入门2
  7. mac XAMPP环境下, 使用php函数mkdir()添加新目录(文件)报错,报错信息:permission denied;...
  8. 安装freetds小记
  9. Linux编程中 #define _XOPEN_SOURCE的作用
  10. MySQL 优化--持续整理