- 博客(9)
- 收藏
- 关注
原创 Netty入门学习(三)-零拷贝
文章目录1.前言2.零拷贝2.1零拷贝基本介绍2.2.传统I/O读写实例2.3.传统I/O模型2.4.零拷贝技术原理2.4.1mmap优化2.4.2.sendFile优化2.4.3.splice方式2.4.4.mmap 和 sendFile 的区别2.4.5.零拷贝理解2.5.各种零拷贝技术对比2.6.Java 零拷贝实现2.6.1基本介绍2.6.2.传统方案2.6.3.零拷贝方案2.7.Java AIO 基本介绍3.BIO、NIO、AIO 对比总结1.前言此篇博文主要把使用Netty需要了解的知识进
2021-12-18 22:29:56
1172
原创 Netty学习前置知识(二)
文章目录1.前言2.ServerSocketChannel 知识点补充2.1基本介绍2.2配置套接字选项3.Selector3.1基本介绍3.2.Selector 特点示意图3.3.示意图说明:3.4.Selector 方法3.5.Selector 注意事项4.NIO 非阻塞网络编程4.1.NIO非阻塞网络编程分析图4.1.1.基本介绍4.1.2.说明:4.2.NIO非阻塞网络编程入门实例4.2.1.基本介绍5.SelectionKey5.1.基本介绍5.2.SelectionKey的几种状态5.3.Sel
2021-11-27 08:04:28
171
原创 Netty学习前置知识(一)
文章目录前言Netty 介绍Netty 使用场景互联网行业游戏行业大数据领域Java IO模型IO模型BIO,NIO,AIO场景分析比较Java BIO 编程Java BIO介绍Java BIO工作机制BIO工作机制梳理Java BIO编程实例问题分析Java NIO 编程Java NIO介绍NIO 与 BIO比较NIO三大核心原理图NIO 的 Selector、Channel 和、Buffer 之间关系三大核心关系解读缓冲区Buffer基本介绍Buffer及其子类基本属性: capacity, limit
2021-11-14 23:01:29
2203
1
原创 Netty 入门
1、Netty 是什么?Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.Netty 是 一个异步事件驱动的网络应用程序框架, 用于快速开发可维护的高性能协议服务器和客户端。2、为什么使用Netty?业务需要统一了各类传输类型的API拥有高
2021-09-15 21:35:19
112
原创 Springboot List集合如何用指定大小分组?
最近遇到一个这么需求数一个List有21条对象数据按照每4条显示出来,试了一些现成的工具不好用于是自己就写了一个分组方法。 1、实现思路 假如有21条用户数据,现在要每4条用户数据为一行显示,总共有6行数据,且第一行从0开始推算如下:...
2021-08-30 17:26:17
629
原创 GC是如何进行对象回收的?
1、垃圾回收器是所有对象都回收吗? 垃圾回收器回收对象前都会验证哪些对象“活着”哪些对象已经“死去”,发现“死去”的对象就会进行垃圾回收。通常有两种算法验证对象存活:引用计数器和根可达分析算法。但在java中使用后者。根可达分析算法是指找到GC Roots根节点并逐一向下寻找对象引用,如果某个对象不存在引用链则该对象到GC Roots不可达,证明此对象将不再使用。 如图所示5,6,7对象因为没有可达GC Roots的引用链所以不再使用,而1,2,3,4对
2021-08-23 14:42:10
412
原创 指令乱序执行给我们带来了什么?
为什么CPU会乱序执行?在冯.洛伊曼时代计算机各个操作只能串行完成,任何时刻都只能进行一条指令待上一条指令执行完了才能执行下一条指令,随着社会生产力水平提高,人们追求的目标之一就是高运算速度,因此并行处理技术便成为计算机发展的主流。一条指令是如何执行的?CPU一条指令执行包含了取指令、指令译码、执行指令、访存取数、结果写回等5个阶段。如图所示...
2021-08-06 08:35:20
1051
原创 把类改为springboot注入后引发了什么有趣的现象?
把类改为springboot注入后引发了什么有趣的现象?前言 最近改造一个老项目,把它改成springboot的方式,其中发现一个类使用new的方式来获得类对象于是就把它改成springboot注入方式。大致也如下。@Componentpublic class CompanyManager { List<CompanyAbstract> companyIterms = new ArrayList<>(); p.
2021-07-30 13:31:58
122
原创 java并发编程引发的伪共享
1、伪共享定义 伪共享又叫(False Sharing),指不同的处理器的线程修改了同一缓存行上的数据。2、cpu缓存机制 CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。如下图所示 存入缓存不是单个数据而是一整块数据,所以多线程情况下修改了同一行上的缓...
2021-07-23 12:14:09
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人