怎么写netty,netty入门教程文档

首页 > 实用技巧 > 作者:YD1662024-02-21 13:34:19

其中包括了常用的实现类NioEventLoopGroup。OioEventLoopGroup在前面的例子中也有使用过。

从Netty的架构图中,可以知道服务器是需要两个线程组进行配合工作的,而这个线程组的接口就是EventLoopGroup。

每个EventLoopGroup里包括一个或多个EventLoop,每个EventLoop中维护一个Selector实例。

5.9.1 轮询机制的实现原理

我们不妨看一段DefaultEventExecutorChooserFactory的源码:

private final AtomicInteger idx = new AtomicInteger(); private final EventExecutor[] executors; @Override public EventExecutor next() { //idx.getAndIncrement()相当于idx ,然后对任务长度取模 return executors[idx.getAndIncrement() & executors.length - 1]; }

这段代码可以确定执行的方式是轮询机制,接下来debug调试一下:

怎么写netty,netty入门教程文档(17)

它这里还有一个判断,如果线程数不是2的N次方,则采用取模算法实现。

@Override public EventExecutor next() { return executors[Math.abs(idx.getAndIncrement() % executors.length)]; }

能力有限,如果有什么错误或者不当之处,请大家批评指正,一起学习交流!

本文为阿里云原创内容,未经允许不得转载。

上一页12345末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.