I/O相关
siyangshen
这个作者很懒,什么都没留下…
展开
-
IO系列文章之一:UNIX IO模型的学习与总结
原先对于IO模型的认识总是很模糊,前段时间系统的学习了一下,分享出来,希望对看到的人有帮助。 UNIX网络编程中,将IO模型划分为5种: (1)阻塞IO (2)非阻塞IO (3)信号驱动IO (4)IO复用 (5)异步IO 1、IO操作的2个步骤: 以上5种IO操作都分成了两个步骤:发起IO请求和实际IO操作。 (1)发起IO请求:IO请求一般需要请求特殊资源(如磁盘、RAM、文件)...原创 2013-05-08 23:48:45 · 174 阅读 · 0 评论 -
IO系列文章之二:Reactor与Java NIO学习
本系列的上一篇文章已经介绍过,IO的阻塞与非阻塞看的是发起IO请求时是否会被阻塞。 一、使用阻塞IO: 在原来进行Java Socket网络编程时,每打开一个I/O通道,read()就一直等待读取字节内容,如果内容没有准备好,read()会阻塞直到数据到来,但此时线程不能做其它事情,所以解决方法就是开辟一个线程池,把每个请求分发到一个线程中去,让线程去等待。 存在的问题: 一个客户端一...原创 2013-05-12 20:05:25 · 103 阅读 · 0 评论 -
IO系列文章之三:Java常用BIO实例总结
本文主要是对Java常用BIO(阻塞IO)操作的一个总结,整理一下分享出来,希望对看到的人有所帮助,同时也希望多多拍砖! 一、IO流: Java IO主要以流的方式操作,流就是数据传输,按传输方向分为输入流和输出流,按数据类型分为字符流和字节流。字节流以字节8bit为单位,字符流以字符为单位,处理多个字节。因此处理纯文本数据,就优先使用字符流,除此之外使用字节流。 字节流分别是Input...原创 2013-05-15 07:55:25 · 217 阅读 · 0 评论 -
IO系列文章之四:一个Java NIO Server实例
本文主要通过一个非常简单的Server实例总结一下基于Java非阻塞IO的网络编程。 希望对大家有所帮助,欢迎拍砖! 一、Server端代码: 该示例主要实现一个简单功能,server端直接打印客户端发送的数据。 由于例子非常简单,一个线程循环处理所有任务,算是一个最简单的NIO Server吧(实际应用开发中是不会采用这种方式的)。 MyNIOServer.java: publi...原创 2013-05-26 11:34:27 · 168 阅读 · 0 评论 -
IO系列文章之五:读《Scalable io in java》看Socket网络编程模型演变
最近利用业余时间在看Java NIO,期间读了线程大师Doug Lea那篇很经典的《Scalable IO in Java》。在此写一写看过之后,对于Socket编程模型演变的一些理解。 首先,对于网络编程,一般都有一个共同的流程: (1)读请求. (2)解码请求. (3)计算处理逻辑. (4)编码响应. (5)发送响应. 一、经典阻塞IO模型: (图片来源:《Scala...原创 2013-06-05 07:00:41 · 187 阅读 · 0 评论