Java 的源代码学习(6)——Netty源代码学习:EventLoop 的实现

当客户端的数量暴增时,给每一个客户端都单独分配一个线程的代价实在是太高,所以“单线程”的设计(比如 Redis、Node.JS 等)对提供系统的并发度至关重要(不过在 Netty 中,并不一定只有一个线程)。另一方面,类似于 UI 线程的单线程模型,在单线程模型下就不需要过多地考虑并发问题,这样会简化相当多的开发工作并能减少很多 bug。老夫写这篇博文来重点研究一下 Netty 中 EventLoop 的具体实现……

Java 的源代码学习(5)——Netty源代码学习:AttributeMap 的实现

“Java 的源代码学习”系列已经歇菜了很长时间了,其主要原因是老夫太懒,写这种文章费脑子不说还很花时间。这几天瞄了一眼 Netty 的源代码,发现其设计和实现都相当值得学习,所以这个系列暂时烂尾一下之前没写完的部分,用几篇博文的篇幅把 Netty 的源代码学习完。AttributeMap 是 Netty 自行设计的一个用于存储属性值的东东,可以理解为是一个线程安全的 Map。而 AttributeMap 的实现 DefaultAttributeMap 是 Channel 最顶级的基类(除了 Object),示意图如下(使用 StarUML 绘制,下同)……