Java IO
plumblum
这个作者很懒,什么都没留下…
展开
-
Java NIO(1):Buffer、Channel 和 Selector原理和常用函数
Java NIO(1):Buffer、Channel 和 Selector #原创 2018-07-29 22:03:32 · 341 阅读 · 0 评论 -
5种I/O模型的分析
1 阻塞式IO模型 网络模型: 在这个模型中,应用程序为了执行这个read操作,会调用相应的一个system call,将系统控制权交给内核,然后就进行等待(这个等待的过程就是被阻塞了),内核开始执行这个system call,执行完毕后会向应用程序返回响应,应用程序得到响应后,就不再阻塞,并进行后面的工作。 场景描述: 在饭店领完号后,前面还有n桌,不知道什么时候到...原创 2018-07-27 17:01:39 · 261 阅读 · 0 评论 -
2.1Java 阻塞式io
Java 阻塞式io编程 执行流程 总体流程图 1.Server 创建连接(ServerSocketChannel) 开启端口(SocketAddress)并绑定bind() 循环监听 1)等待请求连接serversocketchannel.accept() 【发生阻塞】 2)每个SocketChannel开启线程读取数据。 2.Client 开启socketChannel 创建连接soc...原创 2018-09-28 10:15:16 · 168 阅读 · 0 评论 -
2.2 Java 非阻塞io(NIO)
Java 非阻塞io(NIO) 执行流程 1.Server 开启通道选择器Selector 创建ServerSocketChannel通道 并绑定接口 ServerSocketChannel 通道注册到selector serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT)并指定SelectionKey(通道类型)...原创 2018-09-28 11:04:27 · 174 阅读 · 0 评论 -
2.3Java 异步io式(AIO)
Java 异步io式(AIO) 执行流程 AIO(proactor模型):线程发起IO请求,立即返回;内存做好IO操作的准备之后,做IO操作,直到操作完成或者失败,通过调用注册的回调函数通知线程做IO操作完成或者失败。 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理, 代码 1.server public class Se...原创 2018-09-28 15:20:19 · 3625 阅读 · 0 评论