Netty 中, 每个 Channel 都有且仅有一个 EventLoop 与之关联, 它们的关联过程如下:

从上图中我们可以看到, 当调用了 AbstractChannel#AbstractUnsafe.register 后, 就完成了 Channel 和 EventLoop 的关联. register 实现如下:

@Override
public final void register(EventLoop eventLoop, final ChannelPromise promise) {
// 删除条件检查.
...
AbstractChannel.this.eventLoop = eventLoop; if (eventLoop.inEventLoop()) {
register0(promise);
} else {
try {
eventLoop.execute(new OneTimeTask() {
@Override
public void run() {
register0(promise);
}
});
} catch (Throwable t) {
...
}
}
}

在 AbstractChannel#AbstractUnsafe.register 中, 会将一个 EventLoop 赋值给 AbstractChannel 内部的 eventLoop 字段, 到这里就完成了 EventLoop 与 Channel 的关联过程.

最新文章

  1. Mysql数据库中存储中文为乱码
  2. Word论文写作如何实现公式居中、编号右对齐
  3. 打包java项目为可执行程序(exe)
  4. 小谈React、React Native、React Web
  5. win8开发wpf程序遇到的无语问题
  6. OC基础—多态(超级简单)
  7. 《敏捷个人-认识自我、管理自我.pdf》更新至 v0.7
  8. HTML页面表单输入框去掉鼠标选中后边框变色的效果
  9. 是否允许处理由Zend Encoder加密的PHP文件
  10. poj1992 数论
  11. XMLHTTPRequest的属性和方法简介
  12. EntityFramework Add方法与Attach区别
  13. UVa 112 Tree Summing
  14. 避免Java应用中NullPointerException的技巧和最佳实践
  15. Windows平台内核级文件访问
  16. android studio修改项目包名
  17. cookie技术简介
  18. 201521123017 《Java程序设计》第8周学习总结
  19. java第十三次作业
  20. sql查询一个字段不同值并返回

热门文章

  1. Java语言实现简单FTP软件------>本地文件管理模块的实现(九)
  2. genymotion device manager列表没有
  3. Symfony 如何使用ckeditor
  4. tf.InteractiveSession()与tf.Session()
  5. awk 字符串函数
  6. iOS NSDateFormatter 不安全线程 处理
  7. JS一些碎知识点
  8. UITableViewCell高度自适应的关键点
  9. python 3 面向过程编程
  10. poj 3006 Dirichlet's Theorem on Arithmetic Progressions【素数问题】