1. I/O多路复用

1.1 流

流:

一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。

不管是文件,还是套接字(Socket),还是管道(包括匿名和有名管道),我们都可以把他们看作流。

通过read,我们可以从流中读入数据;

通过write,我们可以往流写入数据。

以上面的流的定义为假设,我们需要从流中读数据,但此时,流中还没有数据,

(典型的例子为,客户端要从socket读如数据,但是服务器还没有把数据传回来),

这时候该怎么办?

可以有下面两种办法处理:

> 阻塞:

阻塞是个什么概念呢?

比如某个时候你在等快递,但是你不知道快递什么时候过来,而且你没有别的事可以干(或者说接下来的事要等快递来了才能做);

那么你可以去睡觉了,因为你知道快递把货送来时一定会给你打个电话(假定一定能叫醒你)。

> 非阻塞忙轮询:

接着上面等快递的例子,如果用忙轮询的方法,那么你需要知道快递员的手机号,然后每分钟给他挂个电话:“你到了没?”

很明显一般人不会用第二种做法,不仅显很无脑,浪费话费不说,还占用了快递员大量的时间。

大部分程序也不会用第一种做法,因为第一种方法虽然简单,但是效率很低,因

1.1.2 Linux epoll详解相关推荐

  1. linux epoll详解

    转: 原文作者:Rabbit_Dale,若遇侵权,请联系删帖,谢谢 原文地址:https://www.cnblogs.com/Anker/archive/2013/08/17/3263780.html ...

  2. linux : epoll详解

    http://blog.chinaunix.net/uid-24517549-id-4051156.html

  3. (转载) Linux IO模式及 select、poll、epoll详解

    注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案 ...

  4. Linux IO模式及 select、poll、epoll详解

    https://segmentfault.com/a/1190000003063859 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的. ...

  5. Linux IO复用区别与epoll详解

    转载:http://blog.csdn.net/hacker00011000/article/details/52160590 一.select.poll.epoll之间的区别总结[整理]  sele ...

  6. c if 判断select已经选择的值_「Linux」——select和epoll详解

    select和epoll详解 select和epoll的区别(面试常考) select 一.什么是select 1.select函数原型 2.参数解释 3.参数timeout取值 4.返回值 5.监控 ...

  7. 聊聊IO多路复用之select、poll、epoll详解

    聊聊IO多路复用之select.poll.epoll详解 2016/04/22 · IT技术 · 1 评论 · epoll, IO多路复用, poll, select 分享到:0 本文作者: 伯乐在线 ...

  8. Python中的select、epoll详解

    Python中的select.epoll详解 文章目录 Python中的select.epoll详解 一.select 1.相关概念 2.select的特性 1.那么单进程是如何实现多并发的呢??? ...

  9. 【C/C++服务器开发】文件,文件描述符,I/O多路复用,select / poll / epoll 详解

    文章目录 一.前言 1.文件的概念 2.文件描述符和文件指针 文件描述符 文件描述符和文件指针的区别 文件描述符太多了怎么办 二.I/O多路复用 1.I/O多路复用的由来 不要打电话给我,有需要我会打 ...

最新文章

  1. nginx虚拟目录配置
  2. P3743 kotori的设备(二分答案,思维,线性)难度⭐⭐⭐
  3. 全球移动SaaS市场规模5年将增170亿美元
  4. boost::lower_bound相关的测试程序
  5. Find Minimum in Rotated Sorted Array
  6. 天画-codeMaker组件化架构升级实践
  7. Android基础-Content Provider
  8. 爆干3天整理出来,408考研计算机网络复习笔记(更新中)
  9. python输出日历_python输出指定月份日历的方法
  10. (翻译)折叠菜单(Accordion Menu)
  11. ES3~ES7的数组方法
  12. excel 中的图片删除不了怎么办
  13. PP实施经验分享(3)——MRP运行问题常用解决方式
  14. 计算机基础课小论文,计算机基础课程论文参考文献大全 哪里有计算机基础课程参考文献...
  15. jquery-1.11.1.min.js文件(下拉选带搜索)
  16. xxtea 算法的 js 加密处理类,包含 UtfParser 和 Base64 类 ?
  17. 《设计模式之禅》-建造者模式
  18. CRM的功能优势,建立电话外呼系统
  19. 安卓系统一键root:z4root详细使用教程
  20. python常用 标准库介绍

热门文章

  1. Rails 用 RJS 简单有效的实现页面局部刷新
  2. mysql frm ibd 创建表_MySQL数据库实现从.frm文件和.ibd文件恢复数据表方法
  3. uniapp 引入阿里矢量图标库的详细步骤及踩坑经历
  4. CSDN验证不了手机
  5. 论文结尾参考文献形式
  6. Linux虚拟机CentOS7挂机问题
  7. 集值映射(set -valued mapping)
  8. echat3没有数据的时候,如何设置文字提示:“没有数据”
  9. java全栈工程师前景,已整理成文档
  10. 企业微信怎么输入服务器id,微信企业号的agentid怎么查看?如何获取?