EventLoop 与 Channel 的关联
2024-09-01 20:34:51
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 的关联过程.
最新文章
- Mysql数据库中存储中文为乱码
- Word论文写作如何实现公式居中、编号右对齐
- 打包java项目为可执行程序(exe)
- 小谈React、React Native、React Web
- win8开发wpf程序遇到的无语问题
- OC基础—多态(超级简单)
- 《敏捷个人-认识自我、管理自我.pdf》更新至 v0.7
- HTML页面表单输入框去掉鼠标选中后边框变色的效果
- 是否允许处理由Zend Encoder加密的PHP文件
- poj1992 数论
- XMLHTTPRequest的属性和方法简介
- EntityFramework Add方法与Attach区别
- UVa 112 Tree Summing
- 避免Java应用中NullPointerException的技巧和最佳实践
- Windows平台内核级文件访问
- android studio修改项目包名
- cookie技术简介
- 201521123017 《Java程序设计》第8周学习总结
- java第十三次作业
- sql查询一个字段不同值并返回
热门文章
- Java语言实现简单FTP软件------>本地文件管理模块的实现(九)
- genymotion device manager列表没有
- Symfony 如何使用ckeditor
- tf.InteractiveSession()与tf.Session()
- awk 字符串函数
- iOS NSDateFormatter 不安全线程 处理
- JS一些碎知识点
- UITableViewCell高度自适应的关键点
- python 3 面向过程编程
- poj 3006 Dirichlet's Theorem on Arithmetic Progressions【素数问题】