
netty
tuohuangs
这个作者很懒,什么都没留下…
展开
-
netty5.0之 ChannelPipeline和ChannelHandler
Netty的ChannelPipeline和ChannelHandler机制类似于Servlet和Filter过滤器,这类拦截器实际上上职责链模式的一种变形,主要是为了方便时间的拦截和用户业务逻辑的定制。Netty的Channel过滤器将Channel的数据管道抽象为ChannelPipeline,消息在ChannelPipeline中流动和传递。ChannelPipe持有I/O事件拦截器ChannelHandler的链表,由ChannelHandler对I/O时间进行拦截和处理,可以方便地通过新增和删除C原创 2014-12-19 18:43:29 · 1474 阅读 · 0 评论 -
netty5.0之EventLoop
1、EventExecutorGroup使用它的next()方法负责提供EventExecutor,除此之外,负责生命周期的任务处理,允许以全局方式关闭所有任务。2、EventLoopGroup 继承自EventExecutorGroup, 并提供EventLoop的生成方法next()(Special EventExecutorGroup which allows to register Channel's that get processed for later selection during th原创 2014-12-19 18:27:17 · 1028 阅读 · 0 评论 -
netty5.0之Future和Promise
1、Future功能Future最早来源于JDK的java.util.concurent.Future,它用于代表异步操作的结果。相关API如下:可以通过get方法获取操作结果,如果操作尚未完成,则会同步阻塞当前调用的线程;如果不允许阻塞太长时间或者无限期阻塞,可以通过带超时时间的get方法获取结果;如果到达超时时间操作仍然没有完成,则跑出TimeoutException.isDone原创 2014-12-19 18:41:53 · 2489 阅读 · 0 评论 -
netty5.0之SingleThreadEventLoop & NioEventLoop
SingleThreadEventLoop继承自SingleThreadEventExecutor这是一个标准的线程池的实现。和JDK中线程池的实现大同小异。主要的用处就是执行任务。 NioEventLoop继承自SingleThreadEventLoop,作为NIO框架的Reactor线程,需要处理网络IO读写事件,因此他必须聚合一个多路复用器。原创 2014-12-19 18:30:40 · 2239 阅读 · 3 评论 -
netty5.0之Client端与Server端通信
待续原创 2014-12-19 18:17:24 · 1196 阅读 · 0 评论 -
netty5.0之server端NioServerSocketChannel的bind分析
上一篇我们说到dobind作为一个task加入taskQueue等待SingleThreadventExecutor执行,那么它是如何触发的呢?bind准备工作对channelpipeline和channelHandler做了哪些,handler链含有哪些元素呢?channel进行bind过程中对handler的执行次序是什么呢?handler链在fireChannelActive中handler都做了哪些?本文一一进行揭示,有不当之处欢迎拍砖。原创 2014-12-05 19:32:23 · 2616 阅读 · 3 评论 -
netty5.0 源码剖析-例子
为了学习netty的原理,以如下的例子进行了调试,如果使用请修改DEFAULT_URL和bind的ip值,以运行打印出的http进行访问即可。本例是netty作为文件服务的例子。package netty.chapter10;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;i原创 2014-12-05 19:26:09 · 1951 阅读 · 1 评论 -
netty5.0之Server端NioEventLoopGroup的初始化
1、NioEventLoopGroup构造函数public class NioEventLoopGroup extends MultithreadEventLoopGrouppublic abstract class MultithreadEventLoopGroup extends MultithreadEventExecutorGroup implements EventLoopG原创 2014-12-05 19:30:00 · 3215 阅读 · 3 评论 -
netty5.0之server端NioServerSocketChannel的init和register流程
Channel经历了initAndRegister和doBind0两步骤,本篇主要学习intAndRegister的流程,该流程主要做了:使用group初始化channel;channel参数赋值,初始化监听handler;第一次启动SingleThreadEventExecutor,并把register任务加入taskQueue中。原创 2014-12-05 19:31:26 · 1778 阅读 · 0 评论