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 绘制,下同)……

歌曲收藏(34)——老夫喜欢的周董的歌

前些年听到有些人说周杰伦的新歌不如以前的专辑好听,可是老夫与这类人的看法正好相反:我更喜欢他的新专辑里的歌曲。周董最近一次发布专辑是 2016 年,距今已经有 4 年多了,但老夫直到最近才把他的最近两张专辑认真听完。话说为什么会这样呢?因为我喜欢留着慢慢“品味”,只要找到一两首很喜欢的歌曲就会配合着以前的老歌一直听很久,而其他的歌曲则留给今后再慢慢听(不然按照周董生小孩这几年出专辑的速度……)