base64
base64 编码普遍应用于需要通过被设计为处理文本数据的媒介上储存和传输二进制数据而需要编码该二进制数据的场景。这样是为了保证数据的完整并且不用在传输过程中修改这些数据。
url编码解码
url编码解码,又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20。
编译与反编译
python文件在被import运行的时候会在同目录下编译一个pyc的文件(为了下次快速加载),这个文件可以和py文件一样使用,但无法阅读和修改;python工具支持将pyc文件反编译为py文件(可能会存在部分文件无法反编译)。
编译:高级语言转换成计算机认识的低级语言然后让计算机执行
反编译:通过低级语言进行反向工程,获取其源代码
把javac编译得到的class中间代码进行反编译
Demo
Demo是demonstration的缩写,其中文含意为“示范”、“展示”、“样片”、“样稿”,常被用来称呼具有示范或展示功能及意味的事物。
来自 https://www.google.com.hk/search?q=demo是什么&ie=UTF-8
序列化 将对象的状态信息转换可存储传输形式的过程
来自 https://baike.baidu.com/item/序列化/2890184
序列化的作用:
1:对象随着程序的运行而被创建,然后在不可达时被回收,生命周期是短暂的。但是如果我们想长久地把对象的内容保存起来怎么办呢?把它转化为字节序列保存在存储介质上即可。那就需要序列化。
2:所有可在网络上传输的对象都必须是可序列化的,比如RMI(remote method invoke,即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错;所有需要保存到磁盘的java对象都必须是可序列化的。通常建议:程序创建的每个JavaBean类都实现Serializeable接口
3:进程间传递对象,Android是基于Linux系统,不同进程之间的java对象是无法传输,所以我们此处要对对象进行序列化,从而实现对象在 应用程序进程 和 ActivityManagerService进程 之间传输。
来自 https://www.cnblogs.com/lanqingzhou/p/14352748.html
持久化
程序数据在持久状态和瞬时状态间转换的机制
持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。
来自 https://baike.baidu.com/item/持久化/6726574
子网掩码
要想知道是不是一个网段 首先先看子网是不是一样 一般常用的C类IP地址 子网掩码都是255.255.255.0 就是说前3段表示网段如192.168.0.X 最后一位表示主机号 IP地址前3段一模一样就是一个网段 如 192.168.0.1和192.168.0.5是一个网段 最后一位从1到254都可以 都是一个网段 192.168.2.1和192.168.2.X也是一个网段 但192.168.0.X和192.168.2.X就不是一个网段 A类地址子网掩码是255.0.0.0 如 10.0.0.5和10.5.2.1是一个网段 只要第一段一样就是一个网段了 B类地址子网掩码是255.255.0.0 就是说前2段一样就是一个网段的
网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为 “192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0
允许255个局域网节点来自 http://www.hkyzz.net/jxbk/202205/59819.html
;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩 码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器) 上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。
来自 https://product.pconline.com.cn/itbk/wlbg/network/1709/9971669.html
默认网关
从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。
来自 https://product.pconline.com.cn/itbk/wlbg/network/1709/9971669.html
默认网关:一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。
一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。默认网关的设定有手动设置和自动设置两种方式。
子网掩码
子网掩码:子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
扩展资料:
子网掩码一共分为两类。一类是缺省(自动生成)子网掩码,一类是自定义子网掩码。
缺省子网掩码
缺省子网掩码即未划分子网,对应的网络号的位都置1,主机号都置0。
A类网络缺省子网掩码:255.0.0.0
B类网络缺省子网掩码:255.255.0.0
C类网络缺省子网掩码:255.255.255.0
在缺省掩码下的IP地址中,网络地址和广播地址的计算很简单,虽然按照计算方法需要进制转换和与运算,但是在实际使用当中,我们已经可以快速写出结果。网络地址的计算就是子网掩码中0对应的地方变0, “255”对应的地方不变即可;而广播地址则是子网掩码中0对应 的地方变“255”,“255”对应的地方不变。
自定义子网掩码
自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。形式如下:
未做子网划分的IP地址:网络号+主机号
做子网划分后的IP地址:网络号+子网号+子网主机号
也就是说IP地址在划分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。子网掩码是32位二进制数,它的子网主机标识用部分为全“0”。利用子网掩码可以判断两台主机是否在同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。
参考资料来源:百度百科-默认网关
参考资料来源:百度百科-网关
来自 https://zhidao.baidu.com/question/2150121.html
同一个网段是指地址的网络段相同的地址,子网掩码是用来切割地址的网络地址和主机地址的,但是反过来看,同一网段的地址子网掩码一定相同,为每个网段都分配一个IP地址。
来自 https://baike.baidu.com/item/同一个网段/10612240?fr=aladdin
ping的request消息没有发出(没有配置网关,没有生成默认出口路由)
用本机ip回无法访问目的主机,源设备的掩码配置错误,应该是走默认路由走了直连路由。
ping的request消息发给网关,但网关回了icmp错误消息,可能是访问目的主机失败,这有可能是对方未开机。或者对方开机未接在对应网络上,网关arp广播消息没收到,或者其他网络故障错误。
ping的request消息发给网关,但定时器超时后,没有收到响应包。这可能是对方防火墙,对方回程路由,路径上有问题。
5 情况4,显示time out,有下面几种可能性:
a、检查下防火墙,是否拦截了ping的请求消息。
b、检查经过节点的路由是否正确,或者是否有回程路由。
c、反向路由检测,回程路由的硬件网卡出口和ping的request的入口网卡不是同一个?
d、交换机vlan对应的接口全部down了,导致vlan状态down,vlan的对应路由没有生成。导致节点从路由器wan口发包到公网上去,而没有回包导致time out?
e、还有极端情况就是跨网段,环境中有突发性大包,超出某一个节点的传输最大速率,造成转发端口丢弃大量的包。现象会出现时通时断,某一段时间ping显示time out。这种情况可以查看交换机的收发情况,是否有大量丢弃的包。如有查找源头处理。见:ping时通时断,显示有time out问题跟踪过程
DNS
域名系统(Domain Name System,DNS)是
Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台
主机要访问另外一台主机时,必须首先获知其地址,
TCP/IP中的
IP地址是由四段以“.”分开的数字组成(此处以IPv4的地址为例,IPv6的地址同理),记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。
来自 https://baike.baidu.com/item/域名系统/2251573?fromtitle=DNS&fromid=427444&fr=aladdin
init.py 文件的作用是将文件夹变为一个Python模块
来自 https://blog.csdn.net/wu_zhiyuan/article/details/124630092
9月7早的目标是让贝壳爬虫稳定爬取,不用重复启动,也能在线实时去重。
最佳进程数计算
CPU 密集型
一个完整请求,I/O操作可以在很短时间内完成, CPU还有很多运算要处理,也就是说 CPU 计算的比例占很大一部分
最佳线程= cpu核数(逻辑) +1
cpu密集型和IO密集型是什么
是任务、方法的类型
- cpu密集型(计算密集型、cpu高了)
处理运算时间比较长,系统运行的大部分状况是CPU Loading 100%,不太需要访问I/O设备 - 例如
计算圆周率、对视频进行高清解码 - 要注意什么
尽量避免CPU的切换,任务同时进行的数量 = CPU的核心数
I/O密集型程序
与 CPU 密集型程序相对,一个完整请求,CPU运算操作完成之后还有很多 I/O 操作要做,也就是说 I/O 操作占比很大部分
单核: 最佳线程数 = (1/CPU利用率) = 1 + (I/O耗时/CPU耗时))
-
IO密集型
IO的速度远远低于CPU和内存的速度,cpu性能好,处理运算时间比较短,大部分的状况是CPU在等I/O (硬盘/内存) 的读/写操作 -
例如
Web应用 -
要注意什么
可以充分利用CPU的资源,但不能开启任务数量太多,一般情况:任务同时进行的数量 = 2*CPU的核心数
原文链接:https://blog.csdn.net/weixin_45325628/article/details/123353961
守护进程
在multiprocessing.Process中可以使用p.daemon=True将子进程p设置为守护进程。
守护进程
将子进程设置为守护进程后,若父进程退出则子进程也退出。防止产生僵尸进程
来源地址:https://blog.csdn.net/weixin_45934622/article/details/127159270