python的select()方法直接调用操作系统的IO接口 它监控sockets,openfiile,pipes

(所有带fileno()的方法的文件句柄) 什么时候变成 readable writeable 或者通信错误

select() 让监控多个连接变得简单 并且比写一个长循环来等待和监控多客户端要高效

因为select 直接通过操作系统提供的c的网络接口进行操作而不是通过Python解释器

select()方法并行监控3个通讯列表,第一个是输入data ,就是外部发过来的数据

第二个是监控要出去的data 第三个监控错误信息我们需要创建两个列表包含输入

和输出信息来传给select()

用我的话来解释异步吧:

甲和乙做炸饺 甲把皮搞好之后然后把皮给乙 然后乙把饺子包好后 给甲下油锅

本来是 甲搞好一个皮 ----然后给乙----- 等乙包好后-----然后乙把饺子给甲----- 甲炸饺子。

现在是 甲和乙之间放了两个盘子 ,甲把皮搞好了就放在盘子1里 然后检查盘子2里面有没有饺子 有饺子就去炸,

而乙呢 一直检查盘子有没有 饺子皮 ,有的话赶快包好放到盘子2里

虽然过程可能不经相同,但是的确是这个样子的 说白了还是线性了 但是把甲和乙的阻塞时间降低

但是其实select跟这个例子差不多,但是他检测的是文件状态和句柄,如果文件太多的话 每次检查都要穷举一遍 也会变慢

那么就有了后来的 pool和epool

python select 实现的更多相关文章

  1. Python Select 解析

    首先列一下,sellect.poll.epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select ...

  2. python select epoll poll的解析

    select.poll.epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组(在linux中一切事物皆文件 ...

  3. Python select实现socket并发

    Python select  Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时 ...

  4. python select模块

    Python select 一.前言 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句 ...

  5. python select网络编程详细介绍

    刚看了反应堆模式的原理,特意复习了socket编程,本文主要介绍python的基本socket使用和select使用,主要用于了解socket通信过程 一.socket模块 socket - Low- ...

  6. python select模块详解

    要理解select.select模块其实主要就是要理解它的参数, 以及其三个返回值.select()方法接收并监控3个通信列表, 第一个是所有的输入的data,就是指外部发过来的数据,第2个是监控和接 ...

  7. python select.select模块通信全过程详解

    要理解select.select模块其实主要就是要理解它的参数, 以及其三个返回值.select()方法接收并监控3个通信列表, 第一个是所有的输入的data,就是指外部发过来的数据,第2个是监控和接 ...

  8. Python select模块学习

    select 是常用的异步socket 处理方法 一般用法: # iwtd,owtd,ewtd 分别为需要异步处理的读socket队列, 写socket队列(一般不用), 和错误socket队列, 返 ...

  9. Python select IO多路复用

    一.select介绍 Python的select()函数是底层操作系统实现的直接接口.它监视套接字,打开文件和管道(任何带有返回有效文件描述符的fileno()方法),直到它们变得可读或可写,或者发生 ...

随机推荐

  1. databtables 设置(显示)行号

    var table = $('#priceStrategtyTable').DataTable({         "rowCallback": function( row, da ...

  2. MongoDB-分片片键

    1.分片 分片是什么?分片就是将数据存储在多个机器上.当数据集超过单台服务器的容量,服务器的内存,磁盘IO都会有问题,即超过单台服务器的性能瓶颈.此时有两种解决方案,垂直扩展和水平扩展(分片).    ...

  3. 一道常被人轻视的前端JS面试题

    前言 年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非多 ...

  4. 大数据系列(2)——Hadoop集群坏境CentOS安装

    前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...

  5. Tips for Planning Your Business Startup

    原文链接:http://domaintree.me/?p=1037 By Robert Thibodeau –  Starting a business can be a very daunting ...

  6. Markdown:让书写更美好

    http://www.jianshu.com/p/17fdcf17bbb4 http://sdutlinux.org/t/218   文档整体解决方案 在自己的服务器上安装GitBook markdo ...

  7. 使用Jackson解析Json示例

    原文http://blog.csdn.net/gebitan505/article/details/17005735 custom.json: {     "country":&q ...

  8. openstack想说爱你不容易

    网上一牛人的博客专门写的是关于openstack的,看晕了.先收藏下.猛击下面的地址 http://www.cnblogs.com/popsuper1982/

  9. UrlEncode 和 HtmlEncode

    UrlEncode 是将指定的字符串按URL编码规则,包括转义字符进行编码.

  10. 【2016-10-25】【坚持学习】【Day12】【WPF】【Telerik】【VirtualtionData 虚拟化数据】

    VirtualQueryableCollectionView When working with the UI components that enable UI Virtualization, yo ...