![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
I/O
文章平均质量分 94
我的青铜时代
这个作者很懒,什么都没留下…
展开
-
全手写NettyIO模型
前言 上章介绍IO的发展历程以及实际应用,讲到多路复用器的多线程模型时,一笔带过了,本章会将此处补充并由此将到Netty的IO模型,最后会将思路通过代码实现。 一、引入 上章使用单线程的方式实现了一个多路复用器,但是想想即使epoll的效率很高,如果说碰上十万连接都存在数据的情况,程序内部使用事件通知,还是需要依次遍历一个一个处理,这样用户体验是非常差的,更甚至就没发用。 上章说如果使用多路复用器的话会使得数据包乱包,其实针对这种情况是有一种解决方案的,就是每次客户端接收到一个事件通知,就将此连接从多路复用原创 2021-07-04 18:15:04 · 315 阅读 · 2 评论 -
万字图解网络IO模型附实战
前言 网络IO是一个很庞大的体系,不是简单的学会了NIO就可以。所以本章会将会从网络IO的历史开始谈起,一步一步从代码到操作系统内核的推导。本章干货较多,我相信看完你一定会有很大收货。 本章知识点关键字: Socket BIO NIO 多路复用器(select、poll、epoll) 一、Socket 在开始网络IO之前,先普及一下Socket的知识点,因为BIO、NIO操作的对象就是Socket。 Socket即套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。这段话是百度百科上面原创 2021-06-30 00:59:21 · 371 阅读 · 0 评论 -
磁盘IO java代码落地实战演练
前言 上篇更新了linux中IO相关的部分基础知识,主要偏向于理论。本篇会将上章节的理论落地并扩展关于磁盘IO相关的知识点。 如需补充理论知识的同学点击这里。linux之内存管理 一、磁盘IO性能的比较 我们经常说buffered IO比Base IO快,但是我们知道为什么他比基本的IO快吗? 下来我们来看一组代码。简单说明下:在固定时间内,向磁盘中循环写入固定字节数的数据,通过改变输入流的方式,来观察最终生成文件的大小,得出IO性能排名。 package com.dxg.disk; import jav原创 2021-06-16 00:24:37 · 253 阅读 · 2 评论 -
Linux之内存管理
前言 本篇内存管理学习总结为后面学习I/O的前置。关于I/O我们常听的词都有磁盘I/O、网络I/O、BIO、NIO、多路复用、epoll、mmap、零拷贝、顺序/随机读写,如需深入了解需要有机组的部分知识。楼主大学专业软件工程,有开机组的课程,不过毕业后全部交给老师了。那就先从内存管理开始吧。收!!!开始上干货。 一、内存管理的发展历程 在DOS时代,受到内存大小的限制,同一个时间只能有一个进程在运行。 在Windows 9X时代,增大了机器的内存,此时进程是可以通过内核的调度实现多进程同时运行,但是也存在原创 2021-05-30 23:24:55 · 371 阅读 · 2 评论