最近大概看了ZooKeeper和Mina的源码发现都是用Java NIO实现的,所以有必要搞清楚什么是NIO。
BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。
NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都...
分类:
其他好文 时间:
2015-01-11 23:02:52
阅读次数:
516
1. 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。(阻塞)2. 同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。(立即返回)3. 异步事件阻塞I/O: 用户进程可以对I/O事件进行阻塞,但是...
分类:
其他好文 时间:
2014-12-03 22:52:31
阅读次数:
146
原文老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的...
分类:
其他好文 时间:
2014-11-24 22:06:11
阅读次数:
182
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(BlockingIO):即传统的IO模型。(2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的N...
分类:
其他好文 时间:
2014-11-15 00:11:49
阅读次数:
301
1. Linux IO 模型矩阵2. 同步阻塞IO3. 同步非阻塞IO4. 异步阻塞IO5. 异步非阻塞IO
分类:
系统相关 时间:
2014-10-29 14:45:20
阅读次数:
206
ngx_lua出来很长时间了,但一直没有关注过,最近有一个I/O密集型的项目,用PHP性能严重不足,但是通过C开发扩展成本很大,对需求也不能及时响应,结果尝试了一下lua,结果非常喜人,他的同步非阻塞I/O,协同程序等等,让他的性能无与伦比!在项目的开发中需要用到consistenthas..
分类:
其他好文 时间:
2014-09-30 13:56:50
阅读次数:
294
老张爱喝茶,废话不说,煮开水。
出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。
1 老张把水壶放到火上,立等水开。(同步阻塞)
老张觉得自己有点傻
2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)
老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。
3 老张把响水壶放到火上,立等水...
分类:
其他好文 时间:
2014-09-09 12:55:11
阅读次数:
181
老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种...
分类:
其他好文 时间:
2014-08-14 13:23:58
阅读次数:
134
libevent源码深度剖析十——支持I/O多路复用技术张亮
Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题,这其实不难,本节就...
分类:
其他好文 时间:
2014-05-16 08:58:03
阅读次数:
345