阻塞与非阻塞socket的优缺点
来源:互联网 发布:直线电机选型算法 编辑:程序博客网 时间:2024/05/29 16:37
http://www.cnblogs.com/sunada2005/p/3591378.html
谓阻塞方式的意思是指,当试图对该文件描述符进行读写时,如果当时没有东西可读,或者暂时不可写,程序就进入等待状态,直到有东西可读或者可写为止。
而对于非阻塞状态,如果没有东西可读,或者不可写,读写函数马上返回,而不会等待。
非阻塞,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高
简单的讲,阻塞就是GET,非阻塞就是PUT
阻塞好控制,不发送完数据程序不会走下去。但是对性能有影响。
非阻塞不太好控制,可能和能力有关,但是性能会得到很大提升。
阻塞式的编程方便。
非阻塞的编程不方便,需要程序员处理各种返回值
阻塞处理简单,非阻塞处理复杂
阻塞效率低,非阻塞效率高
阻塞模式,常见的通信模型为多线程模型,服务端accept之后,对每个socket创建一个线程去recv。逻辑上简单,适用于并发量小(客户端数目少),连续传输大数据量的情况下,比如文件服务器。还有就是在客户端recv服务器消息的时候也经常用,因为客户端就一个socket,用阻塞模式不影响效率,而且编程逻辑上要简单得多。
非阻塞模式,常见的通信模型为select模型和IOCP模型。适用于高并发,数据量小的情况,比如聊天室。客户端多的情况下,如果采用阻塞模式,需要开很多线程,影响效率。另外,客户端一般不采用非阻塞模式。
0 0
- 阻塞与非阻塞socket的优缺点
- 阻塞与非阻塞socket的优缺点
- 【转】阻塞与非阻塞socket的优缺点
- socket的阻塞与非阻塞模式
- SOCKET的阻塞与非阻塞
- socket的阻塞与非阻塞
- socket阻塞与非阻塞的区别
- Socket阻塞与非阻塞的区别
- socket阻塞与非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- 阻塞socket与非阻塞的socket(转载)
- socket的阻塞与非阻塞,同步与异步
- java多线程:线程池的原理及实现
- runtime从入门到精通(二)—— 官方文档翻译
- javaWeb连接数据库
- 应用程序池与应用程序域
- 欢迎使用CSDN-markdown编辑器
- 阻塞与非阻塞socket的优缺点
- (二)洞悉linux下的Netfilter&iptables:内核中的ip_tables小觑
- CentOS6.8 + cuda + caffe安装记录 (之三 caffe使用)
- 视图的上面两个角有弧度
- 时间戳
- 导入demo 乱码问题
- MemCache超详细解读
- 原生js图片渐变透明兼容ie
- saiku无缝对接kylin