一张图让你看明白Nettty EventLoop是个什么东东
来源:互联网 发布:php代替session 编辑:程序博客网 时间:2024/04/29 13:14
说明一下:
EventExecutorGrop,这个接口没啥,只是增加了一些方法,比如next(), shutdownGracefully()。
EventExecutor,这个接口也没啥,直接继承于EventExecutorGrop,添加了几个功能方法而已。
EventLoopGroup,这个接口也没啥,直接继承于EventExecutorGrop,添加了一个典型的方法,register()。
EventLoop,这个接口也没啥,直接继承于EventLoopGroup, OrderedEventExecutor, 添加了几个功能方法而已。
所以,这4个接口,是一个东西,说白了,就是一个Executor,可以执行task,也可以定时执行task,只不过添加了register(channel),next()功能,正因为有了next(),返回一个EventExecutor,或EventLoop,所以,本身就是一个线程池,来看看next()的实现,这是轮询的方式:
从上图,还可以看到,EventLoop就一个有用的实现类,它是SingleThreadEventLoop,其实就是个SingleThreadEventExecutor。
SingleThreadEventExecutor是个单线程类,内部有一个taskQueue,所有的任务,都是先加到这个taskQueue中,再按task添加的顺序执行。
SingleThreadEventLoop的具体实现类,比如NioEventLoop还可以设置ioRatio,执行原理,很简单,反正是依次执行taskQueue中的任务,计算执行时间即可,具体请看此类r的un()方法。
关于netty里的pipeline
这个东西很好理解,记住以下,再看源代码。
pipeline分inbound和outbound。
凡是read操作,都是inbound,凡是write操作,都是outbound。
read-->inbound都是从head到tail依次执行handler,write-->outbound都是从tail到head依次执行handler。
- 一张图让你看明白Nettty EventLoop是个什么东东
- 软件测试,你到底是个什么东东?
- JNDI 是个什么东东?
- JNDI 是个什么东东?
- EJB是个什么东东?
- Swap是个什么东东?
- Kotlin是个什么东东?
- 百度竞价如何理清思路?一张图让你明白!
- 一张图让你明白IT男都是闷骚型的
- 一张图让你彻底明白线程生命周期
- 一张图让你明白SQL各种连接
- 大数据:一张图让你明白什么是大数据
- 一张图让你明白Handler、Message、Looper消息机制
- 一张图瞬间让你明白原型链结构
- 一张图让你看遍10个VR细分领域!
- latte到底是个什么东东?
- 物联网是个什么东东
- ognl是个什么东东呢?
- SSL/TLS 协议分析
- 《软件工程——实践者的研究方法》重难点复习笔记(第七章——指导实践的原则)
- 【Kotlin从入门到深坑】之类的属性和字段
- 快速排序(java)
- Swift 设置 tabbar 字体颜色和字体大小
- 一张图让你看明白Nettty EventLoop是个什么东东
- 原生js多级菜单启示录
- C语言作业-4-2念整数
- iOS 3DES加密解密(一行代码搞定)
- 在SSM下使用POI实现Excel表的导入/导出
- caffe2 first sight
- Kotlin简介
- Objective-C instancetype关键字
- win32学习11.资源