前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >netty 业务线程池

netty 业务线程池

作者头像
平凡的学生族
发布2019-05-25 09:10:35
1.4K0
发布2019-05-25 09:10:35
举报
文章被收录于专栏:后端技术后端技术
  1. netty中,Channel的实现一定是线程安全的。基于此,我们可以存储一个Channel的引用,并且在需要向远程端点发送数据时,通过这个引用来调用Channel相应的方法,即便当时有很多线程在使用它也不会出现多线程问题,而且,消息一定会按顺序发送出去。
  2. 不要把长时间执行耗时任务放入到EventLoop的执行队列中,因为它将会一直阻塞该线程所对应的所有Channel上的其他执行任务。 如果我们需要进行调用或是耗时的操作,就需要使用一个专门的EventExcutor(业务线程池)

通常有两种实现方式:

  1. 在ChannelHandler的回调方法中,使用自己定义的业务线程池,这样就可以实现异步调用。
  2. 在pipeline.addLast时,调用ChannelPipeline addLast(EventExecutorGroup group, ChannelHandler... handlers);,让handler上的所有回调方法都由该EventExecutorGroup执行。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档