研磨Netty
文章平均质量分 75
研磨Netty
zuodaoyong
这个作者很懒,什么都没留下…
展开
-
Future & Promise
在异步处理时,经常用到Future和Promisenetty 中的 Future 与 jdk 中的 Future 同名,但是是两个接口,netty 的 Future 继承自 jdk 的 Future,而 Promise 又对 netty Future 进行了扩展。jdk Future 只能同步等待任务结束(或成功、或失败)才能得到结果 netty Future 可以同步等待任务结束得到结果,也可以异步方式得到结果,但都是要等任务结束 netty Promise 不仅有 netty Futur..翻译 2021-06-24 00:24:04 · 103 阅读 · 0 评论 -
EventLoop
EventLoop:事件循环对象EventLoop 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件。翻译 2021-06-19 16:21:03 · 165 阅读 · 0 评论 -
多路复用Selector
一、非阻塞 vs 阻塞1、 阻塞阻塞模式下,ServerSocketChannel.accept 会在没有连接建立时让线程暂停,翻译 2021-06-06 17:05:58 · 328 阅读 · 0 评论 -
Paths和Files
jdk7 引入了 Path 和 Paths 类,Path 用来表示文件路径,Paths 是工具类,用来获取 Path 实例Path source = Paths.get("test.txt");翻译 2021-06-06 09:24:19 · 797 阅读 · 0 评论 -
Netty之线程模型
目前使用最多的线程模型:传统阻塞I/O服务模型,Reactor模型Reactor模型又可以分为:单Reactor单线程,单Reactor多线程,主从Reactor多线程Netty的线程模型是由主从Reactor多线程演化而来说明:图中黄色框为对象,蓝色框为线程,白色框为方法一、传统阻塞I/O服务模型特性:1、采用阻塞IO模式获取输入的数据 2、每个连接都...原创 2019-12-11 22:53:43 · 399 阅读 · 0 评论 -
Netty之NIO零拷贝
零拷贝:从操作系统角度说是没有cpu拷贝。零拷贝不仅带来更少的数据复制,还带来其他的性能优势,例如更少的上下文切换,更少的cpu缓存伪共享以及无cpu校验和计算。java程序中,常用的零拷贝是:内存映射(mmap)和sendFileNIO零拷贝使用方式:transferTo先看下传统的IO数据读写代码如下:传统IO模型:注:DMA(direct memory acc...原创 2019-12-10 22:43:12 · 462 阅读 · 0 评论 -
Netty之NIO核心组件
Java NIO(同步非阻塞)时jdk1.4开始的,java提供了一系列改进的输入/输出的新特性。NIO可以做到一个线程处理多个操作,假设有10000个请求过来,分配50或者100个线程来处理。不像之前的阻塞IO那样,非得分配10000个。HTTP2.0使用多路复用技术,做到同一个连接并发处理多个请求,且并发请求的数量比HTTP1.1高几个数量级。NIO的核心组件:1、通道(Cha...原创 2019-12-05 11:41:39 · 137 阅读 · 0 评论 -
Netty之BIO工作机制
BIO(同步阻塞IO)基本流程(1)客户端启动Socket对服务器进行通信,默认服务器端需要对每个客户端建立一个线程与之通信。(2)客户端发出请求后,先咨询服务端是否有线程响应,如果没有则会等待,或者被拒绝。BIO的缺点:(1)每个请求都需要创建独立的线程,与对应的客户端进行数据Read或者Write(2)当并发数较大时,需要创建大量线程来处理连接,系统资源占用较大(3...原创 2019-11-24 22:02:18 · 293 阅读 · 0 评论