RHEL8_Linux计划任务

news2024/11/27 0:21:58

本章主要介绍如何创建计划任务

  • 使用 at 创建计划任务
  • 使用 crontab 创建计划任务
        有时需要在某个指定的时间执行一个操作,此时就要使用计划任务了。计划任务有两种:一个是at计划任务,另一个是 crontab计划任务。
下面我们分别来看这两种计划任务的使用方法。

1.at

        at计划任务是一次性的,到了指定的时间点就开始执行指定的命令,执行完成之后,不会重复执行这个命令。
1)首先查看系统中是否存在at计划任务,命令是atq或at -1(字母1),命令如下。
[root@node01 ~]# atq 
[root@node01 ~]# 
[root@node01 ~]# at -l
[root@node01 ~]# 
这两个命令都没有任何输出,说明当前系统中并不存在任何计划任务。

 下面开始创建at计划任务,at的用法如下。

at 时间点 <按【Enter】键>
> 输入耀执行的命令
Ctrl + D 提交
2)例如,要在2023年12月10日执行hostname命令,命令如下。
[root@node01 ~]# at 2023-12-10
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 1 at Sun Dec 10 11:06:00 2023
[root@node01 ~]# 
        这里只是指定了日期,并没有指定在2025年12月12日的几点执行。那么,创建这个计划任务时是几点几分,例如,这里是在11点07分创建的at计划任务,那么到了2023年12月10日的11点07分就要自动执行hostname命令了。
如果要指定某个时间点,格式如下。
at 时间 日期 <按【Ether】键>
>输入要执行的命令
Ctrl+D 提交
3)例如,要在2023年12月10日上午10点执行 列出/etc/hosts文件,命令如下。
[root@node01 ~]# at 10:00 2023-12-10
warning: commands will be executed using /bin/sh
at> ls /etc/hosts
at> <EOT>
job 2 at Sun Dec 10 10:00:00 2023
[root@node01 ~]# 

4)这里上午用am表示,下午用pm表示。例如,要在2023年12月10日下午10点执行列出ls /etc/hosts文件,命令如下。
[root@node01 ~]# at 10pm 2023-12-10
warning: commands will be executed using /bin/sh
at> ls /etc/hosts
at> <EOT>
job 3 at Sun Dec 10 22:00:00 2023
[root@node01 ~]# 
5)at也支持某天之后的某个时间点运行一个命令。例如,要在3天之后的下午4点执行,ls /etc/hosts命令,命令如下。
[root@node01 ~]# at 4pm +3days
warning: commands will be executed using /bin/sh
at> ls /etc/hosts      
at> <EOT>
job 4 at Mon Dec 11 16:00:00 2023
[root@node01 ~]# 
这里“+”两边有没有空格都可以,days可以换成weeks,表示3周之后的下午4点。
6)如果想在第二天的下午4点执行ls /etc/hosts命令,命令如下。
[root@node01 ~]# at 4pm +1days
warning: commands will be executed using /bin/sh
at> ls /etc/hosts
at> <EOT>
job 5 at Sat Dec  9 16:00:00 2023
[root@node01 ~]# 
或者用关键字tomorrow,如果使用关键字tomorrow,则不需要加“+”,命令如下。
[root@node01 ~]# at 4pm tomorrow
warning: commands will be executed using /bin/sh
at> ls /etc/hosts
at> <EOT>
job 6 at Sat Dec  9 16:00:00 2023
[root@node01 ~]# 
上面的两条命令都是表示第二天的下午4点执行ls /etc/hosts命令。
7)这样的关键字还包括today,表示“今天”。例如,要在今天下午10点执行hostname命令,命令如下。
[root@node01 ~]# at 10pm today
warning: commands will be executed using /bin/sh
at> ls /etc/hosts
at> <EOT>
job 7 at Fri Dec  8 22:00:00 2023
[root@node01 ~]# 
8)如果是今天执行一个命令,关键字today是可以不写的,不写日期默认就是“今天”。
[root@node01 ~]# at 12pm
warning: commands will be executed using /bin/sh
at> ls /etc/hosts     
at> <EOT>
job 9 at Fri Dec  8 12:00:00 2023
[root@node01 ~]# 
9)如果要表示几分钟或几小时之后,可以用关键字now。例如,要在2小时之后执行ls /etc/hosts命令,命令如下。
[root@node01 ~]# at now+2hours
warning: commands will be executed using /bin/sh
at> ls /etc/hosts  
at> <EOT>
job 10 at Fri Dec  8 13:18:00 2023
[root@node01 ~]# 
10)如果想3分钟之后删除/root/apache,命令如下。
[root@node01 ~]# at now+3minutes
warning: commands will be executed using /bin/sh
at> rm -rf /root/apache-tomcat-8.5.77
at> <EOT>
job 12 at Fri Dec  8 11:24:00 2023
[root@node01 ~]# 
11)3分钟之后就是11点25分,开始执行rm -rf /root/apache命令。下面来验证一下,先查看/root/apache
[root@node01 ~]# date ; ls /root/apache-tomcat-8.5.77
2023年 12月 08日 星期五 11:22:14 CST
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp
[root@node01 ~]#
12)现在是11点22分,等一会到11点25分时再次查看/root/apache中的内容
[root@node01 ~]# date ; ls /root/apache-tomcat-8.5.77
2023年 12月 08日 星期五 11:25:54 CST
ls: 无法访问'/root/apache-tomcat-8.5.77': 没有那个文件或目录
[root@node01 ~]# 
可以看到,/root/apache已经被清空。
13)到现在为止已经做了很多个at计划任务了,现在来查看一下有多少个了。通过atq或at -1都可以查看。
[root@node01 ~]# atq
1	Sun Dec 10 11:06:00 2023 a root
2	Sun Dec 10 10:00:00 2023 a root
3	Sun Dec 10 22:00:00 2023 a root
4	Mon Dec 11 16:00:00 2023 a root
5	Sat Dec  9 16:00:00 2023 a root
6	Sat Dec  9 16:00:00 2023 a root
7	Fri Dec  8 22:00:00 2023 a root
8	Fri Dec  8 22:00:00 2023 a root
9	Fri Dec  8 12:00:00 2023 a root
10	Fri Dec  8 13:18:00 2023 a root
[root@node01 ~]# at -l
1	Sun Dec 10 11:06:00 2023 a root
2	Sun Dec 10 10:00:00 2023 a root
3	Sun Dec 10 22:00:00 2023 a root
4	Mon Dec 11 16:00:00 2023 a root
5	Sat Dec  9 16:00:00 2023 a root
6	Sat Dec  9 16:00:00 2023 a root
7	Fri Dec  8 22:00:00 2023 a root
8	Fri Dec  8 22:00:00 2023 a root
9	Fri Dec  8 12:00:00 2023 a root
10	Fri Dec  8 13:18:00 2023 a root
[root@node01 ~]# 
14)可以看到,每个at计划任务前都有一个编号。如果要删除某个at计划任务,可以用如下命令。
语法如下
atrm N 
或
at -d n

这里的N指的是atq查看的结果中前面的编号。

假设要删除编号玮10的at计划任务,命令如下

[root@node01 ~]# atrm 10
如果删除编号为5到9的这些at计划任务,命令如下。
[root@node01 ~]# atrm {5..9}
查看现在还有的at计划任务,命令如下。
[root@node01 ~]# atq
1	Sun Dec 10 11:06:00 2023 a root
2	Sun Dec 10 10:00:00 2023 a root
3	Sun Dec 10 22:00:00 2023 a root
4	Mon Dec 11 16:00:00 2023 a root
[root@node01 ~]# 
可以看到,5到9都已经删除了,现在只剩下1到4了。
15)查看at计划任务的具体内容,语法如下。

这里N指的是 atq查看结果中前面的编号。

at -c N
例如,要查看第一个at计划任务的内容,可以 通过如下命令。
[root@node01 ~]# at -c 2 | tail -3
${SHELL:-/bin/sh} << 'marcinDELIMITER025950c8'
ls /etc/hosts
marcinDELIMITER025950c8
[root@node01 ~]# 
        这里at -c 2的结果太多,所以通过管道传递给tail 命令,获取最后3行的内容。可以看到, 第一个at计划任务中执行的命令是ls /etc/hosts。
16)任何用户都是可以创建at计划任务的,下面使用bob用户创建一个at计划任务。在第二个终端中使用bob登录,然后用atq查看是否有at计划任务。
[bob@node01 ~]$ atq
[bob@node01 ~]$ 
        可以看到,bob用户并没有at计划任务。下面使用tom用户随便创建一个at计划任务,例如,要在3小时之后执行ls /etc/hosts命令。
[bob@node01 ~]$ at now+3hours
warning: commands will be executed using /bin/sh
at> ls /etc/hosts   
at> <EOT>
job 14 at Fri Dec  8 14:47:00 2023
[bob@node01 ~]$ 

1.at的黑名单   

        这里是可以正常创建的,如果要禁止哪个用户创建at计划任务,只要把这个用户名写 入/etc/at.deny中即可,一行一个用户。下面练习禁止 bob用户创建at计划任务,使用root做如下操作。
[root@node01 ~]# echo bob > /etc/at.deny 
[root@node01 ~]# cat /etc/at.deny 
bob
[root@node01 ~]# 
        凡是出现在/etc/at.deny文件中的用户都是不允许创建at计划任务的。切换到tom用户创建at计划任务。
[bob@node01 ~]$ at now+3hours
You do not have permission to use at.
[bob@node01 ~]$ 
可以看到,tom用户已经没有权限创建了。

2.at的白名单

如果想继续允许bob用户创建at计划任务,有以下两种方法
  1. 把bob用户从/etc/at.deny 中删除
  2. 把bob用户添加到/etc/at.allow中
        /etc/at.allow这个文件默认不存在,需要创建出来,且 at.allow 的优先级要高于at.deny,所以 tom 如果同时出现在这两个文件中,那么at.allow生效。
下面设置bob用户可以创建at计划任务,使用root做如下操作。
[root@node01 ~]# echo bob > /etc/at.allow
[root@node01 ~]# cat /etc/at.allow 
bob
[root@node01 ~]# 
        现在tom用户在at.allow 和 at.deny中都存在,at.allow生效,所以 bob用户是可以创建at计划任务的。切换到bob用户创建at计划任务。
[bob@node01 ~]$ at now+3hours
warning: commands will be executed using /bin/sh
at> ls /etc/hosts      
at> <EOT>
job 15 at Fri Dec  8 14:54:00 2023
[bob@node01 ~]$ 

2.ctontal

        at计划任务是一次性的,执行完成就结束,不会重复执行。如果想定期执行某个任务,例如,每周日凌晨2点执行一个命令,这时就要用到crontab了。
        
        查看当前用户是否有 crontab计划任务,可以用crontab-1命令。如果要查看其他用户是否有crontab计划任务,可以用“crontab -1-u用户名”命令,不过-u选项只有root才能用。
1)使用root用户查看自己有没有crontab计划任务,命令如下
[bob@node01 ~]$ crontab -l
no crontab for bob
[bob@node01 ~]$ 
2)使用root用户查看bob用户是否有crontab计划任务,命令如下。
[bob@node01 ~]$ crontab -l -u bob 
must be privileged to use -u
[bob@node01 ~]$ 
        创建crontab计划任务的命令是crontab -e,如果为其他用户创建crontab计划任务,则用“crontab -e -u用户名”命令。当使用crontab-e命令时,会打开一个临时文件,用与
vim 一样的语法来编辑此文件即可。先按【i】键进入插入模式,编辑完成之后,按【Esc】键退到命令模式,在末行模式中输入“wq”保存退出。在此文件中凡是以“#”开头的,都是注释行。
3)crontab定义计划任务的语法如下。
分 时 天 月 周 命令
几个时间单位的意义如下:
  1. 分:几点几分的分
  2. 时:几点,24小时制
  3. 天:几号
  4. 月:月份
  5. 周:星期几

        这几个时间单位可以用空格,也可以用【Tab】键来分隔。

    如果不考虑某个时间单位,例如,不管今天是几号,只要不是周末我们就上班,不考虑“天”的情况下,那么可以用*表示。
        这里每个时间点都可以写多个值,用英文逗号“,”隔开,例如,在分的位置写“0,1.,5,10", 表示0分、1分、5分、10分。
        也可以用横杠“-”表示“到”的意思,例如,在分的位置写“0-10”,表示0到10分。
        这里“0-10”的完整写法是“0-10/1”,表示从0分到10分的每一分钟,从0开始每次增加1,然后到10。如果表示“每N分钟”,则写成“0-10/N”,例如,0到10中每2分钟,则写成“0-10/2”,表示0分、2分、4分、6分、8分、10分。
实战:
1)每天上午7点整执行/etc/hosts命令,如果写成如下命令。
* 7 * * * ls /etc/hosts
2)每周一到周五的上午7点整执行ls /etc/hosts命令,命令如下。
0 7 * *  1,2,3,4,5 ls /etc/hosts
这里可以写成如下命令。
0 7 * * 1-5 ls /etc/hosts
这里1-5表示周一到周五,如果是周六的上午7点整,就不会执行ls /etc/hosts命令。
3)第一季度中每周一到周五的上午7点整执行 ls /etc/hosts 命令,命令如下。
0 7 * 1-3 1-5 ls /etc/hosts
        年的第一季度是1到3月份,这里分、时、月、周(没有天)是“和”的关系,这4个时间单位必须都满足才能执行ls /etc/hosts命令。
所以,5月份的周三上午7点整是不会执行命令,因为“月”没有满足条件。
4)第一季度中每月上旬的上午7点整执行ls /etc/hosts命令,命令如下。
0 7 1-10 1-3 * ls /etc/hosts
        一年的第一季度是1到3月份,每月上旬是1到10日,这里分、时、天、月(没有周) 是“和”的关系,这4个时间单位必须都满足才能执行ls /etc/hosts命令。
        所以,5月8日上午7点整是不会执行ls /etc/hosts命令的,因为“月”没有满足条件。大家
要记住,“天”和“周”是“或”的关系,即
1)分、时、月、周同时满足了,即使“天”不满足条件,也会执行指定的命令。
2)分、时、天、月同时满足了,即使“周”不满足条件,也会执行指定的命令。
5)在5个时间点都写的情况,命令如下。
0 7 1-10 1-3 1-5 ls /etc/hosts
        这里天和周的位置都写了,本句的意思并不是说每年1到3月份的上旬,且要满足周一到周五的上午7点整才执行ls /etc/hosts命令。
        这句的意思是每年的1到3月份这3个月,每月1到10日或周一到周五(二者满足其一),上午7点整都会执行ls /etc/hosts命令。这条其实综合了上面练习3和练习4中的意思。
6)现在最终的crontab计划任务内容如下。
[root@node01 ~]$ crontab -l
* 7 * * * ls /etc/hosts       
0 7 * * * 1,2,3,4,5 ls /etc/hosts 
0 7 * * 1-5 ls /etc/hosts           
0 7 * 1-3 1-5 ls /etc/hosts
0 7 1-10 1-3 * ls /etc/hosts
0 7 1-10 1-3 1-5 ls /etc/hosts

[bob@node01 ~]$ 
7)如果要编辑 crontab计划任务,通过crontab -e来重新编辑;如果要删除,执行 crontab - r命令即可,命令如下。
[root@node01 ~]$ crontab -r
[root@node01 ~]# crontab -l
no crontab for root

1.crontab的黑白名单

1)普通用户也是可以创建crontab计划任务的,如果不想让这个用户创建crontab计划任务,则把这个用户写入/etc/cron.deny中即可,一行一个用户。这个文件默认为空,命令如下。
[root@node01 ~]# cat /etc/cron.deny 
[root@node01 ~]# 
2)如果不希望bob用户创建crontab计划任务,则把bob用户写入这个文件中,命令如下。
[root@node01 ~]# echo bob > /etc/cron.deny 
[root@node01 ~]# cat /etc/cron.deny 
bob
[root@node01 ~]# 
3)在第二个终端中用bob登录,然后测试创建一个crontab计划任务,命令如下。
[bob@node01 ~]$ crontab -e
You (bob) are not allowed to use this program (crontab)
See crontab(1) for more information
[bob@node01 ~]$ 
可以看到,tom用户现在无法创建crontab计划任务了。
如果又想让 tom用户可以创建crontab计划任务,有以下两种方法:
1)把bob用户从/etc/cron.deny 中删除,这种方法大家自行练习。
2)创建/etc/cron.allow,这个文件默认不存在,把tom用户名写到此文件中,命令如下
[root@node01 ~]# ls /etc/cron.allow
ls: 无法访问'/etc/cron.allow': 没有那个文件或目录
[root@node01 ~]# echo bob > /etc/cron.allow
[root@node01 ~]# 
现在bob既出现在/etc/cron.allow中,又出现在/etc/cron.deny中,命令如下
[root@node01 ~]# cat /etc/cron.deny 
bob
[root@node01 ~]# cat /etc/cron.allow 
bob
[root@node01 ~]# 
此时cron.allow生效。
在第二个标签中用tom登录,crontab计划任务是能够创建的。
系统中也自带一些crontab计划任务,在/etc 中存在几个以cron开头的目录,命令如下。
[root@node01 ~]# ls /etc/cron*
/etc/cron.allow  /etc/cron.deny  /etc/crontab

/etc/cron.d:
0hourly  raid-check

/etc/cron.daily:
logrotate

/etc/cron.hourly:
0anacron

/etc/cron.monthly:

/etc/cron.weekly:
[root@node01 ~]# 
        每天都会执行一次/etc/crondaily中的脚本,每小时都会执行一次/etc/cron.hourly中的脚本,每月都会执行一次/etc/cron.monthly中的脚本,每周都会执行一次/etc/cron.weekly中的脚本

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

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

相关文章

AI聊天专题报告:ChatGPT全景图聊聊技术产品和未来

今天分享的AI系列深度研究报告&#xff1a;《AI聊天专题报告&#xff1a;ChatGPT全景图聊聊技术产品和未来》。 &#xff08;报告出品方&#xff1a;LanguageX&#xff09; 报告共计&#xff1a;22页 争论&#xff1a;ChatGPT算不算技术革命 回应吴军老师“ChatGPT不算新技术…

基于jsonrpc4j实现JSON-RPC over HTTP(服务端集成Spring Boot)

1.JSON-RPC说明 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议。 它主要定义了一些数据结构及其相关的处理规则。 它运行时可以基于tcp(socket),http等不同的消息传输方式&#xff0c; 即它不关心底层传输方式的细节。 它使用JSON&#xff08;RFC 4627&#xff09;作为…

空间运算设备-Apple Vision Pro

苹果以其在科技领域的创新而闻名&#xff0c;他们致力于推动技术的边界&#xff0c;这在他们的产品中表现得非常明显。他们尝试开发一项的新型突破性显示技术。在 2023 年 6 月 5 日官网宣布将发布 Apple Vision Pro 头戴空间设备&#xff0c;我们一起来了解一下 Apple Vision …

《每天一个Linux命令》 -- (5)通过sshkey密钥登录服务器

欢迎阅读《每天一个Linux命令》系列&#xff01;在本篇文章中&#xff0c;将介绍通过密钥生成&#xff0c;使用公钥连接管理服务器。 概念 SSH 密钥是用于安全地访问远程服务器的一种方法。SSH 密钥由一对密钥组成&#xff1a;公钥和私钥。公钥存储在远程服务器上&#xff0c;…

PandoraFMS 监控软件 SQL注入漏洞复现

0x01 产品简介 Pandora FMS是西班牙Artica公司的一套监控系统。该系统通过可视化的方式监控网络、服务器、虚拟基础架构和应用程序等。 0x02 漏洞概述 Pandora FMS监控软件存在SQL注入漏洞,攻击者通过chart_generator.php 来执行恶意语句,获取数据库敏感信息。 0x03 复现…

湖南电网启用输电线路无人机巡视,提升电力运维水平

国网湖南电网近期成功引入输电线路无人机巡视技术&#xff0c;实现了电力运维的全新突破。此创新模式通过全自主飞行、自主巡检&#xff0c;极大提高了电力线路运维效率&#xff0c;确保了电网的安全稳定。 一、全自动巡检&#xff0c;无人值守 在输电线路无人机巡视作业现场&…

【Cisco Packet Tracer】路由器实验 静态路由/RIP/OSPF/BGP

本教程讲解路由器的静态IP配置、RIP、OSPF、BGP等实验内容。 一、基本设置 绘制以下拓扑结构&#xff1a; PC0设置&#xff1a; PC1设置&#xff1a; Router0端口0设置&#xff1a; Router0端口1设置&#xff1a; Router1端口0设置&#xff1a; Router1端口1设置&#xff1a…

【Vue3从入门到项目实现】RuoYi-Vue3若依框架前端学习——动态路由与菜单栏

菜单栏 若依框架的侧边栏组件通常由菜单项和子菜单组成。 登录后&#xff0c;会获取用户拥有的路由菜单 {"msg": "操作成功","code": 200,"data": [{"name": "System","path": "/system",…

unity 2d 入门 飞翔小鸟 场景延续(八)

1、新建c#脚本如下 代码&#xff0c;在前方生成生成自身图片并3s后销毁自身&#xff0c;在碰撞物体后小鸟死亡后不删除自身 using System.Collections; using System.Collections.Generic; using UnityEngine;public class CopyScene : MonoBehaviour { //要复制的对象public…

硕士毕业论文格式修改要点_word

目录 0、最开始要做的事情1、更改样式&#xff08;先善器&#xff09;2、多级标题&#xff08;解决自动更新问题必要的基础设置&#xff09;2、插入图片&#xff08;1&#xff09;设置一个图片样式——“无间隔”&#xff08;2&#xff09;插入题注&#xff08;3&#xff09;修…

【K8S】微服务不香了?单体化改造悄然兴起!!

微服务一直以来是服务治理的基本盘之一,落地到云原生上,往往是每个 K8s pods 部署一个服务,独立迭代、独立运维。 但是在快速部署的时候,有时候,我们可能需要一些宏服务的优势。有没有一种方法,能够 “既要又要” 呢?本文基于 tRPC-Go 服务,提出并最终实践了一种经验证…

AI 训练框架:Pytorch TensorFLow MXNet Caffe ONNX PaddlePaddle

https://medium.com/jit-team/bridge-tools-for-machine-learning-frameworks-3eb68d6c6558

12.Mysql 多表数据横向合并和纵向合并

Mysql 函数参考和扩展&#xff1a;Mysql 常用函数和基础查询、 Mysql 官网 Mysql 语法执行顺序如下&#xff0c;一定要清楚&#xff01;&#xff01;&#xff01;运算符相关&#xff0c;可前往 Mysql 基础语法和执行顺序扩展。 (8) select (9) distinct (11)<columns_name…

oracle 下载java之前版本

登录oracle官网&#xff1a;Oracle | Cloud Applications and Cloud Platform 点击resource 进入该页面 点击这个 出现之前版本

融合科技,升级医疗体验——医院陪诊服务的技术创新

随着科技的迅猛发展&#xff0c;医疗服务领域也在积极借助技术手段提升患者体验。本文将探讨如何利用先进的技术代码&#xff0c;将医院陪诊服务推向新的高度。 1. 医疗预约系统的实现 # 通过Python代码实现医疗预约系统 class MedicalAppointment:def __init__(self, patie…

IntelliJ IDEA使用Eval Reset

文章目录 IntelliJ IDEA使用Eval Reset说明具体操作 IntelliJ IDEA使用Eval Reset 说明 操作系统&#xff1a;windows10 版本&#xff1a;2020.1 IntelliJ IDEA安装可查看&#xff1a;安装教程 具体操作 添加&#xff0c;输入网址 https://plugins.zhile.io然后搜索“IDE E…

Linux设备分类与设备号

文件分为&#xff1a; 1.文件内容&#xff1b;2.文件名&#xff1b;3.元信息&#xff08;时间戳&#xff0c;文件大小等&#xff09; 一、Linux内核对设备的分类 linux的文件种类&#xff1a; -&#xff1a;普通文件 d&#xff1a;目录文件 p&#xff1a;管道文件 s&#x…

【Python】Numpy库近50个常用函数详解和示例,可作为工具手册使用

本文以yolo系列代码为基础&#xff0c;在其中查找用到的numpy函数&#xff0c;包含近50个函数&#xff0c;本文花费多天&#xff0c;三万多字&#xff0c;通过丰富的函数原理和示例对这些函数进行详解。以帮助大家理解和使用。 目录 np.array()运行示例 np.asarray()函数解析运…

Netty03-核心组件NioEventLoopGroup解读

NioEventLoopGroup 可以看到NioEventLoopGroup继承了MultithreadEventExecutorGroup并且实现了EventLoopGroup接口&#xff0c;而这两个类被ExecutorService修饰&#xff0c;所以NioEventLoopGroup实际上是一个线程池&#xff0c;池中的对象其实就是单个的NioEventLoop。 源码…

图的邻接链表储存

喷了一节课 。。。。。。。、。 #include<stdio.h> #include<stdlib.h> #define MAXNUM 20 //每一个顶点的节点结构&#xff08;单链表&#xff09; typedef struct ANode{ int adjvex;//顶点指向的位置 struct ArcNode *next;//指向下一个顶点 …