Netty笔记(十) 线程模型

本文详细解析了Netty如何利用后台线程处理I/O事件,通过EventLoop接口在事件循环中执行各种操作,以及如何将ScheduledExecutorService相关操作整合到其设计中,提供了一个简洁高效地应对并发环境的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Netty的线程模型帮助我们简单编写出适应并发环境的代码,简洁且写起来跟在单线程应用无异,需关心背后的同步问题,这一切都交由了Netty去实现与管理。

    Netty是一个基于事件模型的框架,当有事件触发,都会进行事件循环中,再进行下一步处理。Netty中的EventLoop接口代表了事件循环,他扩展自EventExecutor,而EventExecutor又扩自java.util.concruurent.ScheduledExecutorService。这意味都他能拥有ScheduledExecutorService相关操作。

关系图:

    Netty设计使用了后台线程来执行I/O事件,他们触发来自Socket的read跟write操作。若当前inbound或outbound操作在当前EventLoop执行线程中,则直接执行,否则加入到任务队列中排队,待EventLoop读取后执行。

    EventLoop的负责在Channel的生命周期中处理各种事件执行。

    EventLoop中对于执行线程与Channel的分配:

线程池中每一条线程处理少量的Channel,并不是一条线程对应着一个Channel这种方式。

转载于:https://my.oschina.net/XzhiF/blog/266557

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值