摘要: 一、简介 前面的文章说了缓冲区,说了通道,本文就来说说 NIO 中另一个重要的实现,即选择器 Selector。在更早的文章中,我简述了几种 IO 模型。如果大家看过之前的文章,并动手写过代码的话。再看 Java 的选择器大概就会知道它是什么了,以及怎么用了。选择器是 Java 多路复用模型的一个实 阅读全文
posted @ 2019-11-27 20:24 王大军 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 一、简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 – 套接字通道。在展开说明之前,咱们先来聊聊套接字的由来。套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为Berkeley sockets。UNIX 4.2BSD 内核版本中加入了 socket 的实现,此后, 阅读全文
posted @ 2019-11-27 17:06 王大军 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 一、简介 通道是 Java NIO 的核心内容之一,在使用上,通道需和缓存类(ByteBuffer)配合完成读写等操作。与传统的流式 IO 中数据单向流动不同,通道中的数据可以双向流动。通道既可以读,也可以写。 Java NIO 出现在 JDK 1.4 中,由于 NIO 效率高于传统的 IO,所以 阅读全文
posted @ 2019-11-27 16:14 王大军 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 一、简介 java NIO相关类在jdk1.4被引入,用于提高I/O的效率。java NIO包含很多东西,但核心的东西不外乎Buffer、channel和selector。本文先来看Buffer的实现。 二、继承体系 Buffer 的继承类比较多,用于存储各种类型的数据。包括 ByteBuffer、 阅读全文
posted @ 2019-11-27 15:07 王大军 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 一、简介 本文向大家介绍五种I/O模型。分别是阻塞I/O、非阻塞I/O、I/O复用、信号驱动式I/O、异步I/O等。内容参考《UNIX网络编程》,大家想进深入学习网络编程,建议去读读这本书。 二、模型介绍 (一)、阻塞I/O模型 阻塞I/O是最简单的I/O,一般表现为进程或线程等待某个条件,如果条件 阅读全文
posted @ 2019-11-27 10:40 王大军 阅读(273) 评论(0) 推荐(0) 编辑