• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

标签:nio

其它技术

NIO效率高的原理之零拷贝与直接内存映射

NIO效率高的原理之零拷贝与直接内存映射
前言 在笔者上一篇博客,详解了NIO,并总结NIO相比BIO的效率要高的三个原因,点击查看。 这篇博客将针对第三个原因,进行更详细的讲解。 首先澄清,零拷贝与内存直接映射并不是Java中独有的概念,并且这两个技术并不是等价的。 零拷贝 零拷贝是指避免在用户态(User-space) 与内核态(Kernel-space) 之间来回拷贝数据的技术。 传统IO……继续阅读 »

winrains 1年前 (2019-11-09) 70浏览 1个赞

Java技术

基于 Java NIO 实现简单的 HTTP 服务器

基于 Java NIO 实现简单的 HTTP 服务器
1.简介 本文是上一篇文章实践篇,在上一篇文章中,我分析了选择器 Selector 的原理。本篇文章,我们来说说 Selector 的应用,如标题所示,这里我基于 Java NIO 实现了一个简单的 HTTP 服务器。在接下来的章节中,我会详细讲解 HTTP 服务器实现的过程。另外,本文所对应的代码已经上传到 GitHub 上了,需要的自取,仓库地址为 to……继续阅读 »

winrains 1年前 (2019-11-01) 72浏览 1个赞

Java技术

Java NIO(4):选择器

Java NIO(4):选择器
1.简介 前面的文章说了缓冲区,说了通道,本文就来说说 NIO 中另一个重要的实现,即选择器 Selector。在更早的文章中,我简述了几种 IO 模型。如果大家看过之前的文章,并动手写过代码的话。再看 Java 的选择器大概就会知道它是什么了,以及怎么用了。选择器是 Java 多路复用模型的一个实现,可以同时监控多个非阻塞套接字通道。示意图大致如下: 如……继续阅读 »

winrains 1年前 (2019-11-01) 56浏览 1个赞

Java技术

Java NIO(3):套接字通道

Java NIO(3):套接字通道
1.简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 – 套接字通道。在展开说明之前,咱们先来聊聊套接字的由来。套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为Berkeley sockets。UNIX 4.2BSD 内核版本中加入了 socket 的实现,此后,很多操作系统都提供了自己的 socket 接口实现。通过 s……继续阅读 »

winrains 1年前 (2019-11-01) 56浏览 1个赞

Java技术

JAVA NIO(2):文件通道

JAVA NIO(2):文件通道
1.简介 通道是 Java NIO 的核心内容之一,在使用上,通道需和缓存类(ByteBuffer)配合完成读写等操作。与传统的流式 IO 中数据单向流动不同,通道中的数据可以双向流动。通道既可以读,也可以写。这里我们举个例子说明一下,我们可以把通道看做水管,把缓存看做水塔,把文件看做水库,把水看做数据。当从磁盘中将文件数据读取到缓存中时,就是从水库向水塔里……继续阅读 »

winrains 1年前 (2019-11-01) 76浏览 1个赞

Java技术

Java NIO(1):缓冲区

Java NIO(1):缓冲区
1.简介 Java NIO 相关类在 JDK 1.4 中被引入,用于提高 I/O 的效率。Java NIO 包含了很多东西,但核心的东西不外乎 Buffer、Channel 和 Selector。本文中,我们先来聊聊的 Buffer 的实现。Channel 和 Selector 将在随后的文章中讲到。 2.继承体系 Buffer 的继承类比较多,用于存储各种……继续阅读 »

winrains 1年前 (2019-11-01) 70浏览 1个赞

Java技术

Java NIO入门

Java NIO入门
1、引言 Java NIO是Java 1.4版加入的新特性,虽然Java技术日新月异,但历经10年,NIO依然为Java技术领域里最为重要的基础技术栈,而且依据现实的应用趋势,在可以预见的未来,它仍将继续在Java技术领域占据重要位置。 网上有关Java NIO的技术文章,虽然写的也不错,但通常是看完一篇马上懵逼。接着再看!然后,会更懵逼。。。 哈哈哈! 本……继续阅读 »

winrains 1年前 (2019-09-10) 61浏览 1个赞