4778

daozhihun.cn 博客正式启用

欢迎来到刀之魂的新家!这是老夫用新服务器和域名建设的个人博客,域名为 https://www.daozhihun.cn ,国内的用户将会有更流畅的阅读体验。目前老夫正在将原有博客的内容复制到本站,所以有些博文可能找不到或者不完整,乃可以等几天再回来看看……

4726

生活小记——未定标题(149)

看了一下上一次更新本系列还是过年期间的 2 月份,现在都搞成三个月一更了,实在是太离谱了,所以要赶紧来更新一篇。不过由于“众所周知”的原因,最近这三个月也没啥地方可去,不少人还过着“苟且偷生”的生活,所以本文也【应该】不会太长(写完了之后发现篇幅不短)……

4689

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

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

4647

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

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