• IO多路复用


    基本概念:指内核一旦发现进程指定的一个或多个io条件准备读取,他就通知该进程。

    IO多路复用适用如下几个场合:1.当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用IO复用。

                  2.当一个客户同时处理多个套接口时,(一般这种情况很少出现)

                  3.如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用IO复用。

                  4.如果一个服务器既要处理TCP又要处理DUP,一般要用IO多路复用。

                  5.如果一个服务器既要处理多个服务,又要处理多个协议,要用IO多路复用。

    与多进程多线程技术相比,IO多路复用技术的最大优势是系统开销小,系统不必创建进程/线程,也不必维护这些进程线程,从而大大减少这些系统开销。

    select函数:该函数准许进程指示内核等待多个事件中的任意一个发送,并只在一个或多个事件发生或经历一段指定时间才被唤醒。

    函数参数介绍如下:第一个参数制定待测试的描述字的个数,它的值是待测试最大描述字加1,描述字0、1、2.....均将被测试。(因为文件描述从0开始)

             中间的三个参数readset、writeset、expectset指定我们要让内核测试读、写和异常条件的描述字。如果对某一个条件不感兴趣,就可以把它设置为空指针

              

             timeout告知内核等待所指定描述字中的任何一个就绪可花多少时间,其中timeavel结构用于指定这段时间的秒数和微妙数。

             这个参数有三种可能:1.永远等下去,仅在有一个描述字准备好io时才返回,为此,把该参数设置为空指针NULL。

                       2.等待一段固定时间,在有一个描述字准备好io才返回,但是不超过由该参数所指向的timeavel结构中指定的秒数和微妙数。

                       3.根本不等待,检测描述字后立即返回,这称为轮询,为此,该参数必须指向一个timeavel结构,而且其中的定时器值必须为0。

  • 相关阅读:
    15.手写数字识别-小数据集(load_digits)
    14.深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
    11.分类与监督学习,朴素贝叶斯分类算法
    9.主成分分析
    关于core_UI的安装和使用
    2020系统综合实践 期末大作业 15组
    2020系统综合实践 第7次实践作业 26组
    第6次实践作业
  • 原文地址:https://www.cnblogs.com/jacky912/p/10281245.html
Copyright © 2020-2023  润新知