python函数复用原理 python复数函数( 二 )


(1)select
select函数监视的文件描述符分3类,分别是writefds、readfds、exceptfds 。调用select函数会阻塞,直到有描述符就绪(有数据可读、可写或者有except),或者超时函数返回 。当select函数返回后可以通过遍历fdset来找到就绪的描述符 。
select目前几乎在所有的平台上支持,其良好的跨平台支持也是它的一个优点 。select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,可以通过修改宏定义甚至重新编译内核的方式提升这一限制,但是这样也会降低效率 。
(2)poll
不同于select使用三个位图来表示三个fdset的方式,poll使用一个pollfd的指针实现 。
pollfd结构包含了要监视的event和发生的event,不再使用select"参数-值"传递的方式 。同时pollfd并没有最大数量限制(但是数量过大后性能也会下降) 。和select函数一样,poll返回后,需要轮询pollfd来获取就绪的描述符 。
从上面看,select和poll都需要在返回后通过遍历文件描述符来获取已经就绪的socket 。事实上同时连接的大量客户端在同一时刻可能只有很少的处于就绪的状态,因此随着监视的描述符数量的增长,其效率也会线性下降
(3)epoll
epoll是在2.6内核中提出的,是之前的select和poll的增强版本 。相对于select和poll来说,epoll更加领灵活,没有描述符限制 。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次 。
python的函数和代码复用是什么意思就是说一段代码/函数你能用多次 , 就像南孚一样,用在不同的场合中
python函数复用原理的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于python复数函数、python函数复用原理的信息别忘了在本站进行查找喔 。

推荐阅读