嵌入式面经篇九——网络编程

news2024/11/15 8:30:31

文章目录

  • 前言
  • 一、网络编程
    • 1、列举一下 OSI 协议的各种分层。说说你最熟悉的一层协议的功能。
    • 2、TCP/IP协议包括?
    • 3、TCP通信建立和释放的过程?端口的作用?
    • 4、IP地址转换成物理地址的协议?反之?
    • 5、IP 地址的编码分为哪两部分?
    • 6、应用程序 ping 发出的是什么报文?
    • 7、socket编程的流程?
    • 8、epoll 是什么?
    • 9、TCP、UDP 的区别?
    • 10、TCP、UDP 分别有什么优点和缺点?
    • 11、TCP、UDP 各自的适用场景是什么?
    • 12、TCP 为什么是可靠连接?
    • 13、TCP 如何保证可靠传输?
    • 14、简述 TCP 三次握手的过程。
    • 15、为什么需要三次握手,第三次握手去掉行不行?
    • 16、为什么服务器端易受 SYN 攻击?有什么防范措施吗?
    • 17、简述 TCP 四次挥手的过程
    • 18、TCP 四次挥手中,为什么客户端最后还要等待 2*MSL(Maximun Segment Lifetime)?
    • 19、为什么 TCP 建立连接是三次握手,而关闭连接却是四次挥手?
    • 20、DNS 服务器和客户机设置完毕后,有哪三个命令可以测试其设置是否正确?
    • 21、网络编程的作用?
    • 22、socket 网络编程中,哪五个元素可以明确标识一条连接?
    • 23、什么是 TCP 粘包?
    • 24、造成 TCP 粘包的原因?
    • 25、什么时候需要处理粘包现象?
    • 26、如何解决粘包问题?
    • 27、IP 地址的分类?
    • 28、IP 地址与 MAC 地址的相同点和不同点?
    • 29、路由器、交换机、集线器的区别?


前言

记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第九篇。


一、网络编程

1、列举一下 OSI 协议的各种分层。说说你最熟悉的一层协议的功能。

在这里插入图片描述

  • 七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
  • 五层划分为:应用层、传输层、网络层、数据链路层、物理层。
  • 层划分为:应用层、传输层、网络层、网络接口层。(TCP/IP协议对应模型)
  • 各层功能
    在这里插入图片描述

2、TCP/IP协议包括?

在这里插入图片描述

3、TCP通信建立和释放的过程?端口的作用?

  • 连接是三次握手,释放是四次挥手。
  • 端口是一个软件结构,被客户进程或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口。

4、IP地址转换成物理地址的协议?反之?

答:

  • 将 IP 地址转换成物理地址的协议是 ARP(地址解析协议)。
  • 反之则是 RARP(反地址解析协议)。

解读:

  • ARP 协议工作流程:

    • 首先,每台主机都会在自己的 ARP 缓冲区(ARP Cache)中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址的对应关系。
    • 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP 列表中是否存在该 IP 地址对应的 MAC 地址,如果有就直接将数据包发送到这个 MAC 地址;如果没有,就向本地网段发起一个 ARP 请求的广播包,查询此目的主机对应的 MAC 地址。此 ARP 请求数据包里包括源主机的 IP 地址、硬件地址、以及目的主机的 IP 地址。
    • 网络中所有的主机收到这个 ARP 请求后,会检查数据包中的目的 IP 是否和自己的 IP 地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的 MAC 地址和 IP 地址添加到自己的 ARP 列表中,如果 ARP 表中已经存在该 IP 的信息,则将其覆盖,然后给源主机发送一个 ARP 响应数据包,告诉对方自己是它需要查找的 MAC 地址;
    • 源主机收到这个 ARP 响应数据包后,将得到的目的主机的 IP 地址和 MAC 地址添加到自己的 ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。
  • RARP协议工作流程:

    • 网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的 MAC 地址。PC1 从网卡上读取 MAC 地址,然后在网络上发送一个 RARP 请求的广播数据包,请求 RARP 服务器回复该 PC 的 IP 地址。
    • RARP 服务器收到了 RARP 请求数据包,为其分配 IP 地址,并将 RARP 回应发送给 PC1。
    • PC1 收到 RARP 回应后,就使用得到的 IP 地址进行通讯。

5、IP 地址的编码分为哪两部分?

IP 地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

6、应用程序 ping 发出的是什么报文?

答:应用程序 ping 发出的是 ICMP 请求报文。
解读:ping 的原理是利用网络上机器 IP 地址的唯一性,给目标 IP 地址发送一个数据包,通过对方回复的数据包来确定两台网络机器是否连接相通,时延是多少。

7、socket编程的流程?

  • 服务器端流程:
    在这里插入图片描述
  • 客户端流程:
    在这里插入图片描述

8、epoll 是什么?

  • epoll 是 Linux 网络编程中用于处理大批量文件描述符的机制,是对 select/poll 的改进。
  • select 监听的 fd 是有上限的,32 位处理器一般为 1024;且 select/poll 每次调用会遍历所有 fd,时间复杂度为 O(n),效率太低。而 epoll 监听的 fd 数量没有限制,且能在 O(1) 的时间复杂度内完成操作。
  • epoll 相关的系统调用有:epoll_create、epoll_ctl、epoll_wait/epoll_pwait(可屏蔽特定信号),分别用来创建一个 epoll 文件描述符、添加/删除/修改需要侦听的文件描述符及事件、接收被侦听描述符的 IO 事件。epoll 文件描述符用完之后直接 close 关闭即可。

9、TCP、UDP 的区别?

  • TCP是面向连接的,UDP是面向无连接的。
  • TCP是面向字节流的,UDP是基于数据报的。
  • TCP提供可靠服务(正确性、顺序性),UDP提供不可靠服务。
  • TCP程序结构复杂,占用资源多;UDP程序结构简单,占用资源少。
  • TCP有拥塞控制;UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低,适合于实时应用,如IP电话、实时视频会议。
  • TCP只支持一对一;UDP支持一对一、一对多、多对一、多对多。

10、TCP、UDP 分别有什么优点和缺点?

  • TCP
    • 优点:稳定可靠。在传输数据之前,会有三次握手来建立连接;在数据传输时,有校验和、确认、重传、序列号、窗口、拥塞控制机制;在数据传输结束后,还会有四次挥手来断开连接,节约系统资源。
    • 缺点:效率低、占用系统资源多、易受攻击。建立连接和确认、重传、窗口、拥塞控制机制都会消耗大量时间;每台设备维护连接都会占用CPU、内存等资源;三次握手机制、确认机制导致TCP易受利用和攻击。
  • UDP
    • 优点:效率高、占用系统资源较少、比TCP稍安全。没有各种复杂机制,传输速度快,占用系统资源较少,被利用的漏洞也少一些。
    • 缺点:不稳定、不可靠。没有各种复杂机制,网络质量不好时很容易丢包。

11、TCP、UDP 各自的适用场景是什么?

  • TCP:对数据传输的质量要求较高,但对实时性要求不高时,比如HTTP、HTTPS、FTP等文件传输协议,以及POP、SMTP等邮件传输协议。
  • UDP:对数据传输的实时性要求较高,但对质量要求不高时,比如在线视频、网络语音电话等。

12、TCP 为什么是可靠连接?

因为TCP传输的数据满足四大条件:不出错、不丢失、不重复、不乱序,而且拥有窗口机制、拥塞控制机制来提高传输效率。

13、TCP 如何保证可靠传输?

  • 校验和:发送数据报的二进制相加然后取反,检测数据在传输过程中的变化,有差错则丢弃。
  • 确认应答:接收方收到正确的报文就会确认。
  • 超时重传:发送方等待一定时间后没有收到确认报文则重传。
  • 序列号:发送方对每一个数据包编号,接收方对数据包排序,保证不乱序、不重复。
  • 窗口机制(流量控制):双方会协调发送的数据包大小,保证接收方能及时接收。
  • 拥塞控制机制:如果网络拥塞,发送方会降低发送速率,降低整个网络的拥塞程度。

14、简述 TCP 三次握手的过程。

在这里插入图片描述

  • 第一次握手:客户端创建传输控制块,然后向服务器发出连接请求报文(将标志位 SYN 置 1,随机产生一个序列号 seq=x),接着进入 SYN-SENT 状态。
  • 第二次握手:服务器收到请求报文后由 SYN=1 得到客户端请求建立连接,回复一个确认报文(将标志位 SYN 和 ACK 都置 1,ack=x+1,随机产生一个序列号 seq=y),接着进入 SYN-RCVD 状态。此时操作系统为该 TCP 连接分配 TCP 缓存和变量。
  • 第三次握手:客户端收到确认报文后,检查 ack 是否为 x+1,ACK 是否为 1,是则发送确认报文(将标志位 ACK 置1,ack=y+1,序列号 seq=x+1),此时操作系统为该 TCP 连接分配 TCP 缓存和变量。服务器收到确认报文并检查无误后则连接建立成功,两者都进入 ESTABLISHED 状态,完成三次握手。

15、为什么需要三次握手,第三次握手去掉行不行?

  • 不行。
  • 首先,第三次握手是为了防止已经失效的连接请求报文突然传输到了服务器,从而建立错误的连接,浪费资源。
  • 其次,第三次握手还能防止发生死锁,因为若为两次握手且服务器发出第二次握手而客户端没有收到,服务器开始传输数据报后客户端便不会理会,导致服务器以为丢包而源源不断地发送数据报,造成死锁。

16、为什么服务器端易受 SYN 攻击?有什么防范措施吗?

  • 因为服务器端的资源是在第二次握手时分配的,而客户端的资源是在第三次握手时才分配的,若服务器收到大量伪造的 IP 地址发来的 SYN 包,则需要不断回复并等待确认,由于等待不到确认这些连接就会占满未连接队列,导致后来正常的连接请求报文被丢弃,从而引起网络拥塞甚至系统瘫痪。
  • 防范措施:限制单个 IP 地址最大连接数、限制单位时间内连接数、修改重传次数为 0(只要收不到客户端的响应则立即丢弃该连接)。

17、简述 TCP 四次挥手的过程

在这里插入图片描述

  • 第一次挥手:客户端发出连接释放报文(FIN=1,seq=u),进入 FIN-WAIT-1 状态。
  • 第二次挥手:服务器收到连接释放报文后发出确认报文(ACK=1,ack=u+1,seq=v),进入 CLOSE-WAIT 状态。这时客户端向服务器方向的连接就释放了,这个连接处于半关闭状态,服务器还可继续发送数据。
  • 中间状态:客户端收到服务器的确认报文后,进入 FIN-WAIT-2 状态,等待服务器发送连接释放报文,此时仍要接收数据。
  • 第三次挥手:服务器最后的数据发送完,向客户端发送连接释放报文(FIN=1,ACK=1,ack=u+1,seq=w),进入 LAST-ACK 状态。
  • 第四次挥手:客户端收到服务器的连接释放报文后,必须发出确认报文(ACK=1,ack=w+1,seq=u+1),进入 TIME-WAIT 状态。注意此时连接还未释放,必须进过 2*MSL(最长报文寿命)的时间,客户端撤销相应的 TCB 后,才进入 CLOSED 状态。服务器一旦收到确认报文,立即进入 CLOSED 状态。

18、TCP 四次挥手中,为什么客户端最后还要等待 2*MSL(Maximun Segment Lifetime)?

  • 第一,保证客户端发送的最后一个 ACK 报文能够到达服务器,因为这个 ACK 报文可能丢失,服务器等待 2MSL 后,会重新发送连接释放报文。等待 2MSL 保证如果确认报文丢失客户端可以收到重传的连接释放报文,然后再次发送确认报文。
  • 第二,使本连接持续的时间内所产生的所有报文段都从网络中消失,不会出现类似“两次握手”的意外情况。

19、为什么 TCP 建立连接是三次握手,而关闭连接却是四次挥手?

  • 建立连接的时候,服务器在 LISTEN 状态下,不需要等待,可以立即建立连接,把 ACK 和 SYN 放在一个报文里发送给客户端,因此只需要三次握手。
  • 而关闭连接时,服务器收到对方的 FIN 报文时,仅仅表示对方不再发送数据了但是还能接受数据,而自己未必将所有数据都发送完了,所以服务器可以立即关闭,也可以发送一些数据后再关闭,所以服务器的确认报文(ACK=1)和连接释放报文(FIN=1,ACK=1)一般分开发送,因此形成四次握手。

20、DNS 服务器和客户机设置完毕后,有哪三个命令可以测试其设置是否正确?

  • PING:是工作在 TCP/IP 网络体系结构中应用层的一个服务命令,主要是向特定的目的主机发送 ICMP Echo 请求报文,测试目的站是否可达及了解其有关状态。
  • IPCONFIG:可用于显示当前 TCP/IP 配置的设置值。
  • NSLOOKUP:用于查询 DNS 记录(nslookup domain [dns-server])、查看域名解析是否正常、在网络故障的时候用来诊断网络问题。

21、网络编程的作用?

网络编程的本质使用套接字来进行进程间通信,但这些进程是分布在不同主机上的进程,因此网络编程在物联网方面有比较大的作用。

22、socket 网络编程中,哪五个元素可以明确标识一条连接?

五元组:客户端端口、客户端IP、服务端端口、服务端IP、传输协议。

23、什么是 TCP 粘包?

TCP 粘包就是指发送方发送的若干数据包到达接收方时粘成了一个包。从接收缓冲区来看,后一包数据的头紧接着前一包数据的尾。

24、造成 TCP 粘包的原因?

  • 发送方原因:TCP 默认使用 Nagle 算法(主要作用:减少网络中报文段的数量),Nagle 算法主要做两件事情:
    • 只有上一个分组得到确认,才会发送下一个分组。
    • 收集多个小分组,在一个确认到来时一起封装并发送。
  • 接收方原因:TCP 接收到数据包,应用层并不会立即处理。实际上,TCP 将收到的数据包保存在接收缓存里,然后应用程序主动从缓存读取收到的分组。这样一来,如果 TCP 接收数据包到缓存的速度大于应用程序从缓存中读取数据包的速度,多个包就会被缓存,应用程序就有可能读取到多个首尾相接的包。

25、什么时候需要处理粘包现象?

  • 如果发送方发送的多组数据本来就是同一块数据的不同部分,比如说一个文件被分成多个部分发送,这时当然不需要处理粘包现象。
  • 如果多个分组毫不相关,甚至是并列关系,那么就一定要处理粘包现象了。

26、如何解决粘包问题?

  • 发送方:可以使用 TCP_NODELAY 选项来关闭 Nagle 算法。
  • 接收方:接收方无法处理,只能将问题交给应用层来处理。
  • 应用层:应用层的解决办法简单可行,不仅能解决接收方的粘包问题,还能解决发送方的粘包问题。
    • 格式化数据:每条数据都有固定的格式(开始符、结束符),这种方法简单易行,但是选择开始符和结束符时一定要确保每条数据的内部不包含这两种符号。
    • 发送数据包长度:发送每条数据时,将数据长度一并发送,例如规定数据的前四位是数据的长度,这样接收方应用层在处理时就可以根据长度来判断每个分组的开始和结束位置。

27、IP 地址的分类?

答:A 类分配给政府机关单位使用,B 类分配给中等规模企业使用,C 类分配给任何需要的人使用,D 类用于多播,E 类用于实验。
解读:
在这里插入图片描述

  • 由于每类地址的开头是固定的,因此每类地址都有自己的范围:

    • A 类:0.0.0.0 ~ 127.255.255.255。
    • B 类:128.0.0.0 ~ 191.255.255.255。
    • C 类:192.0.0.0 ~ 223.255.255.255。
    • D 类:224.0.0.0 ~ 239.255.255.255。
    • E 类:240.0.0.0 ~ 255.255.255.254。
  • 在进行 IP 地址的分配时,有一些 IP 地址具有特殊含义,不会分配给互联网的主机。保留了一些 IP 地址用于私有网络,称为私有地址;保留一些 IP 地址用于测试,称为保留地址。

    • A 类私有地址范围:10.0.0.0 ~ 10.255.255.255;
    • A 类保留地址范围:127.0.0.0 ~ 127.255.255.255。
    • B 类私有地址范围:172.16.0.0 ~ 172.31.255.255;
    • B 类保留地址范围:169.254.0.0 ~ 169.254.255.255。
    • C 类地址私有范围:192.168.0.0 ~ 192.168.255.255。

28、IP 地址与 MAC 地址的相同点和不同点?

  • 相同点:都是唯一的。
  • 不同点:
    • 分配依据不同:IP 地址的分配是基于网络拓扑设计的,可以改动;MAC 地址是基于制造商的,不能改动。
    • 长度不同:IP 地址为 32 位,MAC 地址为 48 位。
    • 寻址协议不同:IP 地址应用于 OSI 第三层,即网络层;MAC 地址应用于 OSI 第二层,即数据链路层。网络层协议可以使数据从一个网络传递到另一个网络(ARP 根据目的 IP 地址,找到中间节点的 MAC 地址,通过中间节点传送,从而到达目的网络);数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过 MAC 地址)。

29、路由器、交换机、集线器的区别?

  • 路由器工作在网络层,根据网络层提供的信息(IP 地址)来选择路由。
  • 交换机工作在数据链路层,通过数据链路层提供的信息(MAC 地址)来选择端口。
  • 集线器工作在物理层,只对信号进行整形、放大后再重发(广播给其他所有端口)。

我的qq:2442391036,欢迎交流!


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

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

相关文章

海外媒体发稿的投稿策略:如何撰写高质量的新闻稿?

发布国外新闻稿件是一个涉及多步骤的过程,旨在确保您的新闻稿能够有效覆盖目标受众。以下是一些关键步骤和实用的技巧,帮助你实现海外媒体发稿。 1. 明确目标和受众 首先,明确您发布新闻稿的目标,是为了增加品牌曝光、推出新产品…

AIGC:text2img - 文生图

当前手头上的定制化项目,可用训练数据较少,训练的模型效果不佳。所以通过 clip-interrogator 获取图片获取描述后,批量进行 文生图 以增加样本量。 在批量生成前,先简单评测一下当前的主流 文生图 模型。直接上效果: …

SQL非技术快速入门39题

※食用指南:文章内容为牛客网《非技术快速入门》39道题重点笔记,用于重复思考错题,加深印象。 练习传送门:SQL非技术快速入门39题 目录: SQL13 Where in 和Not in SQL19 分组过滤练习题 SQL20 分组排序练习题 SQL2…

DDPM | 扩散模型代码详解【较为详细细致!!!】

文章目录 1、UNet网络结构1.1 residual网络和attention网络的细节1.2 t 的作用1.3 DDPM 中的 Positional Embedding 的使用1.4 DDPM 中的 Positional Embedding 代码1.5 residual block1.6 attention block1.7 UNet结构 2、命令行参数解析3、数据的获取与预处理4、模型的训练框…

stm32的UART重定向printf()

1配置好uart 2打开usart.c文件 3在此文件前面添加头文件 4在末尾添加重定向代码 添加的代码 /* USER CODE BEGIN 1 *///加入以下代码,支持printf函数,而不需要选择use MicroLIB //#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #if 1 //#pragma import(__use_n…

microsoft edge怎么关闭安全搜索

microsoft edge浏览器为用户提供了安全搜索功能,旨在帮助用户过滤掉搜索结果中出现的不当信息。然而,有些用户可能觉得安全搜索功能限制了他们的浏览体验或工作需求。下面就给大家带来关闭microsoft edge安全搜索的相关内容,一起来看看吧。&a…

java 函数接口Consumer简介与示例【函数式编程】【Stream】

Java 8 中的 消费者接口Consumer 是一个函数接口,它可以接受一个泛型 类型参数,它属于java.util.function包。 accept(T) 方法:是 Consumer 函数式接口的方法,传入单个输入参数,无返回值,可以用于 Lambda 表…

日本央行还会加息?机构与市场唱反调!

最近,关于日本央行是否会继续加息的话题引发了市场热议。一边是市场对加息预期大幅下降,另一边却有像先锋、M&G这样的国际知名资产管理公司坚定地看好日本央行的进一步紧缩。 这究竟是怎么回事呢? 市场与机构的观点分歧 市场看跌加息&am…

如何通过社交媒体有效促进口碑营销?

在一个广告无处不在的时代,大多数品牌不能再盲目的选择传统的广告轰炸,而应依靠口碑营销,通过消费者的自发传播实现了品牌的快速崛起。 口碑营销的几个关键的传播要素: 真实性:在广告反感的时代,消费者更倾…

Java常用API第二篇

正则表达式: 正则表达式(简称 regex)是用来描述字符串模式的工具,常用于字符串的查找、匹配、替换等操作。它在文本处理、数据验证、以及编程中非常常见。以下是正则表达式的基本知识点: 1. 正则表达式的基础符号 . (…

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署 什么是RAG: 我能把这个过程理解为Kimi.ai每次都能列出的一大堆网页参考资料吗?Kimi学了这些资料以后,根据这里面的信息综…

期权有指定的交易场所吗?

在当前的金融市场环境下,设立专门的股票期权交易所,比如上交所,深交所和中金所,都是国内出门的交易场所,不过期权交易都是在券商和期货开通账户买卖,但这并不妨碍投资者通过其他途径参与期权投资&#xff0…

DHCP原理及实验

目录 1.基础知识 (1)基本概念 (2)DHCP优点 2.工作原理 3.私接路由器解决方法 4.实验搭建 (1)实验top (2)实验概述 5.配置命令 (1)基础配置 &#…

音境剧场:开启声学体验的全新纪元—轻空间

在现代建筑和空间设计中,声学环境越来越受到重视。一个好的声学空间,不仅能提升使用者的感受,还能为各种活动提供最优质的音效体验。作为创新声学空间的代表作,“音境剧场”应运而生,它不仅是一个多功能场馆&#xff0…

FunHPC算力平台评测

作为内测老用户,已经用DeepLn平台(现改名为FunHPC平台)好久了,一路见证了平台从最初100多人的小群到现在满群的状态,FunHpc平台确实在一步步的走向成熟,一步步的变大。趁着现在活动的时间,发篇文…

ant design pro 中用户的表单如何控制多个角色

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的 看上面的图片 当创建或编辑一个用户时,…

vue3里面的组件实例类型(包括原生的html标签类型)

在 通过 ref(null)获取组件的时候,我们想要为 组件标注组件类型,可以通过 any 类型来进行标注,但是很明显,这些的代码很不优雅,所以我们可以利用 vue3 里面的 InstanceType 来进行类型标注 这是…

基于STM32开发的智能窗帘控制系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化光照检测与窗帘控制手动控制与状态指示Wi-Fi通信与远程控制应用场景 家庭智能窗帘办公室环境控制常见问题及解决方案 常见问题解决方案结论 1. 引言 智能窗帘控制系统通过集成光照…

去中心的投票平台

项目介绍: 前端: vue3vant4 工具: vscode和vant在线平台:Vant - Mobile UI Components 交互: Web3.js库 工具:小狐狸钱包(MetaMask) 后端: solisity 工具&#xff1…

Java并发必杀技!线程池让你的程序速度飙升不止一点点!

文章目录 1 线程池的工作机制是什么?2 线程池的任务出现异常该怎么解决?3 线程池的内存泄露该如何解决? 近期迷上了举例子来结合知识点学习,尽量减少枯燥,如有错见谅哈~ 1 线程池的工作机制是什么? 线程池…