1.socket 阻塞,非阻塞(select)

http://blog.csdn.net/piaojun_pj/article/details/5991968/

http://blog.chinaunix.net/uid-26000296-id-3755268.html
http://blog.chinaunix.net/uid-26000296-id-3755264.html

可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。

可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高)方式工作的程序,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。

转载于:https://www.cnblogs.com/ldc529/p/5567055.html

Socket阻塞,非阻塞,同步,异步相关推荐

  1. Socket 同步/异步 与阻塞/非阻塞区别

    2019独角兽企业重金招聘Python工程师标准>>> 在网上看了很多答案,也没找到合适的,也许本文也不是合适答案:) 同步和异步关注的是消息通信机制,而阻塞非阻塞关注的是程序在等待 ...

  2. NIO详解(二): BIO 浅谈 同步 异步与阻塞 非阻塞

    在我们了解Java NIO/BIO的网络通信之前,我们先了解一下常用的阻塞/非阻塞模型以及同步/异步的概念 一.阻塞和非阻塞 从简单的开始,我们以经典的读取文件的模型举例.(对操作系统而言,所有的输入 ...

  3. 异步/同步、阻塞/非阻塞的理解

    异步/同步.阻塞/非阻塞的理解 [同步和异步] 通俗的讲: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式.  异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个 ...

  4. 同步异步阻塞非阻塞杂记

    版权声明:本文可能为博主原创文章,若标明出处可随便转载. https://blog.csdn.net/Jailman/article/details/78498458 gevent实现的协程是同步非阻 ...

  5. 面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗?

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

  6. 确定不来了解一下什么是 BIO NIO AIO 阻塞 非阻塞 同步 异步?

    本文内容涉及同步与异步, 阻塞与非阻塞, BIO.NIO.AIO等概念, 这块内容本身比较复杂, 很难用三言两语说明白. 而书上的定义更不容易理解是什么意思. 下面跟着我一起解开它们神秘的面纱. BI ...

  7. python 进程池阻塞和非阻塞_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...

    9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型池子内什么时候装线程:并发的任务属于IO ...

  8. 同步异步 阻塞 非阻塞 异步调用 线程队列 协程

    阻塞 非阻塞 阻塞:程序遇到了IO操作 导致代码无法继续执行 交出了COU执行权 非阻塞:没有IO操作 或者即使遇到IO操作 也不阻塞代码执行 阻塞 就绪 运行指的是应用程序所处的状态写程序时 尽量减 ...

  9. 同步异步和阻塞非阻塞

    1.同步与异步 被调用者角度 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 所谓同步,就是在发出一个调 ...

  10. 网络编程 多道技术与同步/异步和阻塞/非阻塞

    UDP协议服务端模板代码 import socketserver = socket.socket(type=socket.SOCK_DGRAM) # 创建socket对象,括号内选择类型为UDPser ...

最新文章

  1. 如何在OS X中打印到PDF文件
  2. git 常用命令使用
  3. ES6 模块化的基本语法——默认导出 与 默认导入、按需导出 与 按需导入、直接导入并执行模块代码
  4. PyQt5 技巧篇-窗口置顶设置,如何使窗口始终显示在最前面
  5. iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)
  6. 浅析django的abstract,proxy, managed
  7. 部署LAMP-LAMP平台集成
  8. 单向循环链表的增、删、查、改、python实现,超详细讲解
  9. 错误记录:自己创建activity时不能进行真机usb安装调试
  10. 【转】shell十三问,为linux学习打基础(上)
  11. 上传图片的表单java代码_java模拟post方式提交表单实现图片上传(示例代码)
  12. Windows10通过VNC远程连接Ubuntu18.04
  13. 问题六十八: 着色模型(shading model)(0)——《Ray Tracing from the Ground Up》代码的移植
  14. java求立方体表面积和体积_有关正方体、长方体表面积和体积的计算题
  15. 交换机端口详细配置Trunk
  16. 科普任重而道远:生物信息为什么要学 Linux?
  17. java实现发送短信和邮箱
  18. SEO 和 SEM 的优缺点有哪些区别和优势
  19. 自增ID有什么坏处?什么样的场景下不使用自增ID? 1
  20. progisp下载时报错Chip Enable Program Error 后续解决

热门文章

  1. php配置连接sql2005(使用微软官方驱动)
  2. Kotlin 1.2引入多平台项目特性
  3. easyui-datagrid行数据field原样输出html标签
  4. Linux - SVN下载项目
  5. Android 内存管理 amp;Memory Leak amp; OOM 分析
  6. 常玩手机会导致手指残疾? 专家称没依据
  7. .NET 3.5 中WCF客户端代理性能改进以及最佳实践
  8. 日记 [2008年03月26日]
  9. DongLiORM 第二次更新
  10. 大厂Android面试,居然还问这些问题!