EventLoopGroup源码及其父类

1、特殊的EventExecutorGroup,允许注册处理后的通道以便在事件循环期间进行选择。
EventLoopGroup

next()方法:返回下一个要使用的EventLoop
register(Channel):使用EventLoop注册一个Channel,注册完成后返回的ChannelFuture将会得到通知
register(ChannelPromise):使用ChannelFuture向EventLoop注册一个通道.通过的ChannelFuture会在注册完成后收到通知并将被返回
register(Channel, ChannelPromise):使用EventLoop注册一个Channel,通过的ChannelFuture会在注册完成后收到通知,该方法已经被 register(ChannelPromise)取代

2、EventExecutorGroup负责通过其next()方法提供EventExecutor的使用,并且还负责处理器生命周期并允许在全球范围内关闭
shutdownGracefully()存在两个一个是无参数的,一个是有quietPeriod、timeout、unit三个参数的,分别对应的是文档中描述的静默期、等待执行程序的最大时间、静默期和超时时间的单位

3、ScheduledExecutorService:延迟/周期执行线程池
schedule(Runnable)
schedule(Callable)
scheduleAtFixedRate()
scheduleWithFixedDelay()

4、ExecutorService:线程池服务
invokeAll(tasks)
invokeAll(tasks, timeout, unit)
两者都会阻塞,需要等待所有任务完成后统一返回,一个方面是内存持有时间长,另一个方面是响应性也有一定影响.方法二的超时时间指的是所有的任务,处理一个任务的容器并返回个
Future容器,两容器具有相同的数据结构。
将Future添加到返回容器中这样可使用任务容器的迭代器从而调用者可将它表现的Callable和Future关联起来.当所有的任务完成后调用线程被中断时或者超过时限时候,限时版本
的invokeAll都会返回结果,超过时限后任何未完成的任务都会被取消.

invokeAny(tasks)
invokeAny(tasks, timeout, unit)
启动多个线程去各自负责自己区域这样可以提升速度.但希望只要其中一个线程找到符合要求的数据就立即返回不用再让其他线程继续执行下去可节省CPU使用率.invokeAny只要其中
一个线程执行完就立即返回其他线程会退出不占用CPU

5、Executor:线程池
void execute(Runnable command);在将来某个时候执行给定的命令,该命令可在新线程、池化线程或调用线程中执行,具体由执行程序实现决定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值