菜鸡学习netty源码(四)—— EventLoopGroup

news2024/11/24 16:23:14

1.概述

我们前面进行过分析,channel为netty网络操作的抽象类,EventLoop负责处理注册到其上的Channel处理的I/O事件;EventLoopGroup是一个EventLoop的分组,它可以获取到一个或者多个的EventLoop对象。

2.类关系图

NioEventLoopGroup的类继承图,蓝色部分为对应的java类,绿色的部分就为一些接口的信息

3.EventExecutorGroup

io.netty.util.concurrent.EventExecutorGroup这个接口继承于ScheduledExecutorService, Iterable这两个接口。我们主要看下它进行自定义了哪些属于它自己的接口信息

 //是否已经停止 
 boolean isShuttingDown();

  //关闭
  Future<?> shutdownGracefully();
  Future<?> shutdownGracefully(long quietPeriod, long timeout, TimeUnit unit);

  // 获取一个 EventExecutor 对象
  EventExecutor next();

还有一点需要进行注意,就是返回值的Future需要进行注意不是进行返回的是java.util.concurrent.Future而是 io.netty.util.concurrent.Future

4.AbstractEventExecutorGroup

io.netty.util.concurrent.AbstractEventExecutorGroup实现EventExecutorGroup接口。

4.1 submit

提交一个普通任务到EventExecutor中。


    @Override
    public Future<?> submit(Runnable task) {
        return next().submit(task);
    }

    @Override
    public <T> Future<T> submit(Runnable task, T result) {
        return next().submit(task, result);
    }

    @Override
    public <T> Future<T> submit(Callable<T> task) {
        return next().submit(task);
    }

4.2 schedule

提交一个定时任务到 EventExecutor 中

    @Override
    public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
        return next().schedule(command, delay, unit);
    }

    @Override
    public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
        return next().schedule(callable, delay, unit);
    }

    @Override
    public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
        return next().scheduleAtFixedRate(command, initialDelay, period, unit);
    }

    @Override
    public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
        return next().scheduleWithFixedDelay(command, initialDelay, delay, unit);
    }

4.3 shutdown

 @Override
    public Future<?> shutdownGracefully() {
        return shutdownGracefully(DEFAULT_SHUTDOWN_QUIET_PERIOD, DEFAULT_SHUTDOWN_TIMEOUT, TimeUnit.SECONDS);
    }

    /**
     * @deprecated {@link #shutdownGracefully(long, long, TimeUnit)} or {@link #shutdownGracefully()} i

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jQuery-1.语法、选择器、节点操作

jQuery jQueryJavaScriptQuery&#xff0c;是一个JavaScript函数库&#xff0c;为编写JavaScript提供了更高效便捷的接口。 jQuery安装 去官网下载jQuery&#xff0c;1.x版本练习就够用 jQuery引用 <script src"lib/jquery-1.11.2.min.js"></script>…

【经验分享】做多年大数据采集的经验分享:关于电商API数据采集接口做电商必备的电商API接口

国内主流电商平台包括&#xff1a; 1. 淘宝&#xff1a;阿里巴巴旗下的电子商务平台&#xff0c;以C2C和B2C交易为主要业务模式。 2. 天猫&#xff1a;阿里巴巴旗下的B2C电子商务平台&#xff0c;为品牌商和零售商提供销售渠道和服务。 3. 京东&#xff1a;一家以B2C为主营业务…

Linux网络部分——部署YUM仓库及NFS共享服务

目录 一、yum仓库服务 1. 软件仓库的提供方式 2.如何构建并使用ftp软件仓库&#xff08;与本地yum源方法一致&#xff09; 3.如何搭建使用yum在线源&#xff1f; 4.yum软件包下载如何保存&#xff1f; 二、NFS共享存储服务 1.存储类型 2.提供共享存储的组合 3.NFS网络…

java+jsp+Oracle+Tomcat 记账管理系统论文(完整版)

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ ➡️点击免费下载全套资料:源码、数据库、部署教程、论文、答辩ppt一条龙服务 ➡️有部署问题可私信联系 ⬆️⬆️⬆️​​​​​​​⬆️…

Node.js里面 Path 模块的介绍和使用

Node.js path 模块提供了一些用于处理文件路径的小工具&#xff0c;我们可以通过以下方式引入该模块&#xff1a; var path require("path") 方法描述 序号方法 & 描述1path.normalize(p) 规范化路径&#xff0c;注意.. 和 .。2path.join([path1][, path2][,…

安全至上!群晖NAS开启SSH的正确姿势与风险防范(群晖如何开启SSH,解决群晖无法连接SSH的问题)

文章目录 💢 问题 💢🏡 演示环境 🏡💯 解决方案 💯📝 开启SSH服务📝 设置安全策略📝 远程连接SSH📝 常见问题解决⚓️ 相关链接 ⚓️💢 问题 💢 你是否遇到过需要远程管理你的群晖NAS,却发现无法通过SSH连接的窘境?SSH作为一种安全协议,可以让我们安…

C++ | Leetcode C++题解之第76题最小覆盖子串

题目&#xff1a; 题解&#xff1a; class Solution { public:unordered_map <char, int> ori, cnt;bool check() {for (const auto &p: ori) {if (cnt[p.first] < p.second) {return false;}}return true;}string minWindow(string s, string t) {for (const au…

外星人笔记本-记一次电脑发热过热缘由

背景 笔记本进行过大修&#xff0c;电池鼓包&#xff0c;还好没炸&#xff0c;因此替换电池。发现内存&#xff08;SSD&#xff09;不足&#xff0c;又增加了内存。完成后使用还算正常。但是过一段时间后&#xff0c;系统自动更新几次&#xff08;window10系统就是恶心&#x…

C语言 自定义类型——联合体

目录: 一、联合体是&#xff1f;声明计算内存大小 二、联合体的特点例如 三、联合体大小的计算规则&#xff1a; 四、应用习1习2 一、联合体是&#xff1f; 联合体和结构体差不多&#xff0c;但是其最大的区别在于联合体所有的成员共用一块内存空间。所以联合体也叫共用体。联…

平滑 3d 坐标

3d平滑 import torch import torch.nn.functional as F import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3Dclass SmoothOperator:def smooth(self, vertices):# 使用一维平均池化进行平滑vertices_smooth F.avg_pool1d(vertices.p…

第50期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

五道数组习题,只过思路

建议先过一遍&#xff1a;保研机试前的最后七道数组题-CSDN博客 第一题&#xff1a; 88. 合并两个有序数组 - 力扣&#xff08;LeetCode&#xff09; ​ 跟合并两个有序链表类似&#xff0c; 快慢指针的用法&#xff0c;新建立一个数组&#xff0c;再将数组赋给nums1。 第…

mysql 不停的重启关闭

早上在使用phpstudy的时候&#xff0c;发现自己的mysql5.7和5.8都出现了问题&#xff0c;就是不停的重启&#xff0c;在梳理了状况之后&#xff0c;可能是硬盘的内存空间不足&#xff0c;或者硬盘出现了问题&#xff1b;于是我将mysql 重新安装了一次&#xff0c;整个问题就解决…

图算法必备指南:《图算法:行业应用与实践》全面解读,解锁主流图算法奥秘!

《图算法&#xff1a;行业应用与实践》于近日正式与读者见面了&#xff01; 该书详解6大类20余种经典的图算法的原理、复杂度、参数及应用&#xff0c;旨在帮助读者在分析和处理各种复杂的数据关系时能更好地得其法、善其事、尽其能。 全书共分为10章&#xff1a; 第1~3章主要…

苹果删除的短信怎么恢复?这里有4个恢复技巧

手机短信已成为我们日常沟通中不可或缺的一部分&#xff0c;其中包含了与家人、朋友的温馨对话&#xff0c;以及与工作伙伴的重要信息。然而&#xff0c;有时我们可能会因为误操作或其他原因不小心删除了重要的短信。请别担心&#xff0c;本文将为您详细介绍删除的短信怎么恢复…

为什么说气膜是建造游泳馆的好选择?—轻空间

随着气温逐渐攀升&#xff0c;夏日游泳成为人们追求凉爽的理想选择。在这个时候&#xff0c;选择气膜建筑作为游泳馆的建筑材料具有许多优势。 首先&#xff0c;气膜建筑具备出色的隔热和保温效果。其特殊的材料和结构设计有效隔绝了外界高温&#xff0c;同时保持了良好的通风和…

【吊打面试官系列】Java高并发篇 - 如何让正在运行的线程暂停一段时间?

大家好&#xff0c;我是锋哥。今天分享关于 【如何让正在运行的线程暂停一段时间&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 如何让正在运行的线程暂停一段时间&#xff1f; 我们可以使用 Thread 类的 Sleep()方法让线程暂停一段时间。需要注意的是&#x…

antd vue pro (vue 2.x) 多页签详细操作

antd vue pro 多页签配置操作&#xff0c;具体操作如下。 1.引入 tagviews文件 在 store/modules 中创建 tagviews.js &#xff0c;复制一下代码到文件中保存 const state {visitedViews: [],cachedViews: [] }const mutations {ADD_VISITED_VIEW: (state, view) > {if …

【IP:Internet Protocol,子网(Subnets),IPv6:动机,层次编址:路由聚集(rout aggregation)】

文章目录 IP&#xff1a;Internet Protocol互联网的的网络层IP分片和重组&#xff08;Fragmentation & Reassembly&#xff09;IP编址&#xff1a;引论子网&#xff08;Subnets&#xff09;特殊IP地址IP 编址: CIDR子网掩码&#xff08;Subnet mask&#xff09;转发表和转发…

64-RJ45网口电路设计

视频链接 RJ45网口电路设计01_哔哩哔哩_bilibili RJ45网口电路设计 千兆(十兆、百兆、千兆自适应)以太网电路设计&#xff08;参考第2课&#xff09; 万兆以太网电路设计&#xff08;参考第3课&#xff09; Pcie转网口电路设计&#xff08;参考第49课&#xff09; RGMII &…