【Netty 网络通信】EventLoop 事件循环对象 解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 【1月更文挑战第9天】【Netty 网络通信】EventLoop 事件循环对象 解析

EventLoop 事件循环对象:

EventLoop本质是一个单线程执行器(同时维护了一个Selector),里面有run方法处理Channel上源源不断的IO事件。

EventLoop的继承关系比较复杂:

  • 一条线是继承自j.u.c.ScheduledExecutorsenvice因此包合了线程池中所有的方法。
  • 另一条线是继承自Netty自己的OrderedEventExecutor(有序的事件处理器),提供了booleaninEventLoop(Threadthread)方法判断一个线程是否属于此EventLoop;提供了parent()方法来着看自己属于哪个EventLoopGroup

EventloopGroup 事件循环组:

EventloopGroup是一组EventLoopChannel一般会调用EventLoopGroupregister()方法来绑定其中一EventLoop,后续这个Channel上的io事件都由此EventLoop来处理(保证了io事件处理时的线程安全)

EventloopGroup继承自netty自己的EventExecutorGroup实现了Iterable接口提供遍历EventLoop的能力;另有next()方法获取集合中下一个EventLoop

注意:一般情况下我们并不会直接使用EventLoop而是使用EventloopGroup事件循环组。

  • NioEventLoopGroup:可以执行处理IO事件,普通任务,定时任务。
new NioEventLoopGroup(指定线程数量)

默认的线程数是指定为0,然后比较1当前系统核心数*2之间大小,取较大值。如果指定了线程数量那就按照指定的数创建线程。

NettyRuntime.setAvailableProcessors(指定处理器数量);
NettyRuntime.availableProcessors()

如果不进行设置,默认是CPU的处理器数量。处理器数量在默认情况下会动态调整NioEventLoopGroup创建的线程数量,线程数量对应着EventLoop对象,一个线程对应一个EventLoop对象。

调用NioEventLoopGroupnext()方法,可以循环的获取分组分组中的EventLoop对象。

NettyRuntime.availableProcessors()

如果不进行设置,默认是CPU的处理器数量。处理器数量在默认情况下会动态调整NioEventLoopGroup创建的线程数量,线程数量对应着EventLoop对象,一个线程对应一个EventLoop对象。

调用NioEventLoopGroupnext()方法,可以循环的获取分组分组中的EventLoop对象。

// 设置Netty系统的处理器数量:
NettyRuntime.setAvailableProcessors(1);
// 查看当前Netty处理器数量:
System.out.println(NettyRuntime.availableProcessors());
// 创建NioEventLoopGroup对象:
NioEventLoopGroup group = new NioEventLoopGroup();
// 使用next获取group中的EventLoop对象:
for (int i = 0; i < 4; i++) {
    System.out.println(group.next());

  • DefaultEventLoopGroup:可以执行处理普通任务,定时任务。
new DefaultEventLoopGroup(指定线程数量)
相关文章
|
3天前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
15 5
|
5天前
|
SQL 安全 网络安全
网络安全的护城河:漏洞防御与加密技术的深度解析
【10月更文挑战第37天】在数字时代的浪潮中,网络安全成为守护个人隐私与企业资产的坚固堡垒。本文将深入探讨网络安全的两大核心要素——安全漏洞和加密技术,以及如何通过提升安全意识来强化这道防线。文章旨在揭示网络攻防战的复杂性,并引导读者构建更为稳固的安全体系。
16 1
|
14天前
|
SQL 安全 测试技术
网络安全的盾牌与剑——漏洞防御与加密技术解析
【10月更文挑战第28天】 在数字时代的浪潮中,网络空间安全成为我们不可忽视的战场。本文将深入探讨网络安全的核心问题,包括常见的网络安全漏洞、先进的加密技术以及提升个人和组织的安全意识。通过实际案例分析和代码示例,我们将揭示黑客如何利用漏洞进行攻击,展示如何使用加密技术保护数据,并强调培养网络安全意识的重要性。让我们一同揭开网络安全的神秘面纱,为打造更加坚固的数字防线做好准备。
34 3
RS-485网络中的标准端接与交流电端接应用解析
RS-485,作为一种广泛应用的差分信号传输标准,因其传输距离远、抗干扰能力强、支持多点通讯等优点,在工业自动化、智能建筑、交通运输等领域得到了广泛应用。在构建RS-485网络时,端接技术扮演着至关重要的角色,它直接影响到网络的信号完整性、稳定性和通信质量。
|
3天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
20 3
|
3天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
13 2
|
22天前
|
存储 安全 网络安全
网络安全的屏障与钥匙:漏洞防御与加密技术深度解析
【10月更文挑战第20天】在数字世界的迷宫中,网络安全是守护我们数据宝藏的坚固盾牌和锋利钥匙。本篇文章将带您穿梭于网络的缝隙之间,揭示那些潜藏的脆弱点—网络安全漏洞,同时探索如何通过现代加密技术加固我们的数字堡垒。从基本概念到实战策略,我们将一同揭开网络安全的神秘面纱,提升您的安全意识,保护个人信息不受侵犯。
51 25
|
17天前
|
边缘计算 自动驾驶 5G
|
11天前
|
SQL 安全 算法
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【10月更文挑战第31天】在数字世界的海洋中,网络安全是航船的坚固屏障,而信息安全则是守护宝藏的金钥匙。本文将深入探讨网络安全的薄弱环节——漏洞,以及如何通过加密技术加固这道屏障。从常见网络漏洞的类型到最新的加密算法,我们不仅提供理论知识,还将分享实用的安全实践技巧,帮助读者构建起一道更加坚不可摧的防线。
20 1
|
22天前
|
数据中心

推荐镜像

更多