摘要: 问题 : NioEventLoop 作用到底是什么?是在哪里用到的? NioEventLoop 和我们开头创建的 ServerBootstrap 和 EventLoopGroup 是什么关系 ? NioEventLoop 和 NioChannel 怎么传递的(按合理,一个channel应该分配一个N 阅读全文
posted @ 2019-09-30 16:33 float123 阅读(323) 评论(0) 推荐(0)
摘要: 概述 先了解一下 netty 大概框架图 ,可以看到客户端的创建和服务端最大的区别 - 服务端传入两个 EventLoopGroup,客户端传入一个 EventLoopGroup - channel 的类型也不同,服务端传入的是 NioServerSocketChannel ,客户端传入的是 Nio 阅读全文
posted @ 2019-09-30 16:29 float123 阅读(751) 评论(0) 推荐(0)
摘要: NIO Select 知识 select 示例代码 : 源码阅读 通过上一篇文章我们知道了,netty 实际是由两个 Reactor 组成,前者维护一个 Acceptor 绑定接口,处理客户端的连接,然后再将读写,解码编码工作交给另外一个 Reactor ,我们先来看一下这样一个过程,明白总体的过程 阅读全文
posted @ 2019-09-30 16:23 float123 阅读(246) 评论(0) 推荐(0)
摘要: 问题 : DirectBuffer DirectByteBuffer 自身是一个Java对象,在Java堆中;而这个对象中有个long类型字段address,记录着一块调用 malloc() 申请到的native memory。DirectByteBuffer 自身是(Java)堆内的,它背后真正承 阅读全文
posted @ 2019-09-30 16:21 float123 阅读(1056) 评论(0) 推荐(0)
摘要: 问题 : 零拷贝解决的是什么问题 零拷贝的本质是什么 文章部分知识来自参考链接中朱大的文章,半原创 概述   假如有以下场景:你需要发送一张图片给某个朋友,那么选择好图片后(read),建立连接发送。(write)   这个过程可以见下图  &ems 阅读全文
posted @ 2019-09-30 10:44 float123 阅读(281) 评论(0) 推荐(0)
摘要: 问题 为什么需要虚拟内存 如何实现 虚拟内存的动机 早期程序员自己写程序还要自己管理内存地址(内存条上的地址),要自己知道分配到内存条的哪个地方, 为了解决这个问题,早期的分页管理就出现了,程序员只要知道逻辑地址就可以,然后真实的物理地址不需要管,由分页管理。 举例 : 当时有一种计算机,其指令中给 阅读全文
posted @ 2019-09-30 10:43 float123 阅读(1537) 评论(0) 推荐(0)