自己对着源码敲一遍练习,写上注释。发现NIO编程难度好高啊。。虽然很复杂,但是NIO编程的有点还是很多: 1、客户端发起的连接操作是异步的,可以通过在多路复用器注册OP_CONNECTION等待后续结果,不需要像BIO的客户端一样被同步阻塞。 2、SocketChannel的读写操作都是异步的,如果 ...
分类:
其他好文 时间:
2016-12-06 03:53:23
阅读次数:
345
Java编程中的NIO,俗称new I/O,是在JDK1.4版本之后开始引入的,在JDK1.4之前,Java服务端大多使用同步阻塞式来处理网络请求,在低流量、低并发情况还能抗住,在如今互联网时代,信息量很明显差远了,在没有NIO之前,服务器端通信模块基本被C/C++占据着,它们可以利用操作系统的原生 ...
分类:
其他好文 时间:
2016-11-19 15:30:13
阅读次数:
204
文件在内核中是用三种数据结构进行表示的 (1)文件描述符表:文件描述符表是一个结构体数组,数组的下标就是open函数返回的文件描述符。 文件描述符表的每一个记录有两个字段 *文件描述符标志 * 文件表项指针 (2)文件表项:一般含有一下内容 * 文件状体标志,读,写,追加,同步,阻塞,非阻塞等 * ...
分类:
系统相关 时间:
2016-11-17 23:24:17
阅读次数:
246
Qt的网络操作类是异步(非阻塞的),但有时想做一些阻塞的事情就不方便了,可用如下几行代码轻松实现: 当然如上方式不支持重定向(301等),因为暂时用不上,如果要支持,还要在return前判断并循环或递归。 另外如果出现error,现在的方式会把服务器返回的错误信息直接返回,后面再更新一版,支持判断错 ...
分类:
Web程序 时间:
2016-11-11 20:37:22
阅读次数:
268
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 什么是异步阻塞? 8 什么是异步非阻塞? 在弄清楚上面的几个问题之前,我们首先得明白什 ...
分类:
编程语言 时间:
2016-10-18 18:19:48
阅读次数:
184
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的 ...
分类:
其他好文 时间:
2016-10-18 17:59:27
阅读次数:
136
同步阻塞IO(JAVA BIO): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 异步阻塞IO(Java NIO): 异步阻塞,应用程序发起一个IO操作以后,不等待内 ...
分类:
其他好文 时间:
2016-10-12 16:53:12
阅读次数:
154
Nginx安装Ngninx与apache的比较1.轻量级,同样起web服务,比apache占用更少的内存及资源2.抗并发,nginx处理请求是异步非阻塞的,而apache是同步阻塞型的,在高并发下nginx能保持低资源低消耗高性能,apache是同步多进程模型,一个连接对应一个进程;nginx是异步,多个连接可以..
分类:
其他好文 时间:
2016-10-03 00:32:58
阅读次数:
188
#运行用户userwww-data;#启动进程,通常设置成和cpu的数量相等#阻塞和非阻塞网络模型;#同步阻塞模型,一请求一进(线)程,当进(线)程增加到一定程度后#更多CPU时间浪费到切换一,性能急剧下降,所以负载率不高#nginx基于时间的非阻塞多路复用(epoll或kquene)模型#一个进程..
分类:
其他好文 时间:
2016-09-23 21:59:34
阅读次数:
106
【转自】http://qindongliang.iteye.com/blog/2018539 在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞 ...
分类:
编程语言 时间:
2016-08-22 18:17:21
阅读次数:
199