当前位置: 首页 > news >正文

京东-零售-数据研发面经【附答案】

近期,有参加春招的同学和我交流了他的面试历程,我针对这些内容进行了细致的总结与梳理,并在此分享出来,希望能助力大家学习与借鉴。

1.八股文

1)HashMap的底层原理是什么【见V6.0面试笔记 Java基础部分第19题】

2)了解MapReduce的combine和merge吗【见V6.0面试笔记 MapReduce部分第1题】

3)Hive分区和分桶的区别是什么以及适用的场景分别是什么【见V6.0面试笔记 Hive部分第5题】

4)Hive/Spark是如何构建UDF的【见V6.0面试笔记 Hive部分第14题】
面试笔记补充:Spark是如何构建UDF的?【补充至 Spark补充题第26题】

// 1.定义UDF(获取字符串的最后一个字符)
def strLastChar(col: String) = {str.last
}
// 2.注册UDF
spark.udf.register("strLastChar", strLastChar _)
// 3.使用UDF
spark.sql("select name, strLastChar(name) from tmp")

5)Spark中job、stage、task之间的关系是什么【见V6.0面试笔记 Spark部分第6题】

6)Spark中CheckPoint、Cache、Persist的区别是什么【见V6.0面试笔记 Spark部分第14题】

7)你执行Spark任务时是如何确定Executor的数量、核数以及内存大小的【见V6.0面试笔记 Spark部分第4题】
面试笔记补充:如何确定Executor的数量、核数以及内存大小的?【补充至 Spark补充题第27题】

  • Executor数量(num-excutors):集群总CPU核心数 / excutor-cores;官网推荐50~100
  • Executor核心数(excutor-cores):官网推荐 2~4 核心数
  • Executor内存(excutor-memory):官网推荐 4G~8G

8)HBase一般适用于什么场景使用【见V6.0面试笔记 HBase部分第2题】

9)你用过ElasticSearch吗,简单介绍一下
Elasticsearch 是一个开源的分布式搜索引擎,分布式体现在将数据存储在多个节点上,这些节点之间形成一个集群,数据会被分成多个分片(shards),每个分片可以有多个副本(replicas),用来保证数据的高可用性;搜索使用一种倒排索引(inverted index)的数据结构,将文本中的单词与其出现的文档位置相关联,从而实现快速的搜索。

10)了解ElasticSearch的倒排索引吗
倒排索引是一种索引结构,它将文档中的单词映射到包含这些单词的文档集合,与传统的正向索引(将文档映射到单词列表)不同,倒排索引反转了这种关系,能够快速定位到包含特定单词的文档。我简单介绍一下它的原理,首先将文档的文本内容通过分词器分割成单词,然后为每个分词后的单词构建其对应的倒排列表,在 Elasticsearch 中,倒排索引是自动构建和维护的。在搜索时,系统根据查询关键词查找倒排索引,快速定位包含这些关键词的文档

2.项目

1)介绍一个你觉得做得最好的项目
2)你认为其中的难点在哪里
3)举一个你曾经遇到过的最难写的代码的例子

3.刷题

SQL题

题目: 有一张某日若干A股交易流水表dwd_trd_stock_price_log,包含s_code(股票代码)、price(交易价格)、ds(交易时间),计算当天股票交易能够达到的最大利润
参考答案:

selects_code,max(profit) as max_profit
from(selects_code,price - min_price as profitfrom(selects_code,price,min(price) over(partition bys_codeorder bySTR_TO_DATE(ds, '%Y-%m-%d %H:%i')) as min_pricefromdwd_trd_stock_price_log) t) t
group bys_code;

算法题

题目: 正则表达式匹配 (LeetCode第10题)
参考答案:

class Solution {public boolean isMatch(String s, String p) {int m = s.length(), n = p.length();boolean[][] dp = new boolean[m + 1][n + 1]; // +1 为了方便处理边界// dp初始化dp[0][0] = true;for (int i = 1; i < m + 1; i++) {dp[i][0] = false;   // 空的匹配串,是匹配不上字符的}for (int i = 1; i < n + 1; i++) {   // a* 是可以匹配上空字符的if (p.charAt(i - 1) == '*')dp[0][i] = dp[0][i - 2];elsedp[0][i] = false;}for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (p.charAt(j - 1) == '*') {if (isMatch(s, p, i, j - 1)) {dp[i][j] = dp[i][j - 2] || dp[i - 1][j];} else {    // 使用*dp[i][j] = dp[i][j - 2];}} else {dp[i][j] = dp[i - 1][j - 1] && isMatch(s, p, i, j);}}}return dp[m][n];}private static boolean isMatch(String s, String p, int i, int j) {return s.charAt(i - 1) == p.charAt(j - 1) || p.charAt(j - 1) == '.';}
}

相关文章:

京东-零售-数据研发面经【附答案】

近期&#xff0c;有参加春招的同学和我交流了他的面试历程&#xff0c;我针对这些内容进行了细致的总结与梳理&#xff0c;并在此分享出来&#xff0c;希望能助力大家学习与借鉴。 1.八股文 1&#xff09;HashMap的底层原理是什么【见V6.0面试笔记 Java基础部分第19题】 2&am…...

面试之《react hooks在源码中是怎么实现的?》

要深入理解 React Hooks 在源码中的实现&#xff0c;可以从以下几个关键方面来剖析&#xff1a; 核心数据结构 在 React 内部&#xff0c;使用链表来管理每个函数组件的 Hooks。每个 Hook 对应一个节点&#xff0c;这些节点通过 next 指针相连。以下是简化后的 Hook 节点结构…...

泛型的约束有哪几种?(C#)

目录 1 值类型约束&#xff08;where T : struct&#xff09; 2 引用类型约束&#xff08;where T : class&#xff09; 3 无参构造函数约束&#xff08;where T : new ()&#xff09; 4 基类约束&#xff08;where T : <基类名>&#xff09; 5 接口约束&#xff08…...

Harmony开发笔记(未完成)

一、感想 作为一名拥有11年经验的Android开发者&#xff0c;我亲历了Android从高速发展到如今面临“僧多粥少”的过程。技术的世界瞬息万变&#xff0c;没有一种技术能够让人依赖一辈子。去年初&#xff0c;我自学了鸿蒙系统&#xff0c;并顺利通过了鸿蒙官方的初级和高级认。…...

DevSecOps普及:安全与开发运维的深度融合

一、引言 随着软件开发模式的演进&#xff0c;DevOps已成为现代软件工程的主流实践。然而&#xff0c;在传统的DevOps流程中&#xff0c;安全往往被视为开发和运维之外的额外环节&#xff0c;导致安全漏洞在产品交付后才被发现&#xff0c;增加了修复成本和风险。为了解决这一…...

JavaScript 系列之:Ajax、Promise、Axios

前言 同步&#xff1a;会阻塞。同步代码按照编写的顺序逐行依次执行&#xff0c;只有当前的任务完成后&#xff0c;才会执行下一个任务。 异步&#xff1a;异步代码不会阻塞后续代码的执行。当遇到异步操作时&#xff0c;JavaScript 会将该操作放入任务队列中&#xff0c;继续…...

為什麼使用不限量動態住宅IP採集數據?

在瞭解“不限量動態住宅IP數據採集”之前&#xff0c;我們需要先搞清楚什麼是“動態住宅IP”。簡單來說&#xff0c;動態IP是一種會定期變化的IP地址&#xff0c;通常由互聯網服務提供商&#xff08;ISP&#xff09;分配給家庭用戶。與固定IP&#xff08;靜態IP&#xff09;不同…...

vue3-06vue2(Object.defineProperty)与vue3(基于ES6的Proxy)的响应式原理对比

1.vue2响应原理 1.1对于对象与数组 对象类型: 通过 object.defineProperty() 对属性的读取、修改进行拦截 (数据劫持) 数组类型:通过重写更新数组的一系列方法来实现拦截。 (对数组的变更方法进行了包裹) Vue2的响应式是基于Object.defineProperty实现的 1.2 基本原理Objec…...

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 4

第04章_逻辑架构 1. 逻辑架构剖析 首先MySQL是典型的C/S架构&#xff0c;即Client/Server架构&#xff0c;服务器端程序使用的mysqld。 不论客户端进程和服务器进程是采用哪种方式进行通信&#xff0c;最后实现的效果都是&#xff1a;客户端进程向服务器进程发送一段文本&…...

清华大学DeepSeek文档下载,清华大学deepseek下载(完成版下载)

文章目录 前言一、清华大学DeepSeek使用手册下载二、清华大学DeepSeek使用手册思维导图 前言 这是一篇关于清华大学deepseek使用手册pdf的介绍性文章&#xff0c;主要介绍了DeepSeek的定义、功能、使用方法以及如何通过提示语设计优化AI性能。以下是对这些核心内容的简要概述&…...

HDFS数据多目录、异构存储、回收站

1.NameNode元数据多目录 HDFS集群中可以在hdfs-site.xml中配置“dfs.namenode.name.dir”属性来指定NameNode存储数据的目录&#xff0c;默认NameNode数据存储在${hadoop.tmp.dir}/dfs/name目录&#xff0c;“hadoop.tmp.dir”配置项在core-site.xml中。 我们也可以将NameNod…...

windows设置暂停更新时长

windows设置暂停更新时长 win11与win10修改注册表操作一致 &#xff0c;系统界面不同 1.打开注册表 2.在以下路径 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 右键新建 DWORD 32位值&#xff0c;名称为FlightSettingsMaxPauseDays 根据需求填写数…...

04 路由表的IP分组传输过程

目录 1、路由表的核心结构 2、IP分组传输过程和数据包转发过程 2.1、IP分组传输过程 2.2、数据包转发过程 2.3、IP分组传输过程和数据包转发的区别 3、数据包的变化 3.1、拓扑结构 3.2、传输过程详解&#xff08;主机A → 主机B&#xff09; 3.2.1、主机A发送数据 3.2…...

实现Python+Django+Transformers库中的BertTokenizer和BertModel来进行BERT预训练,并将其应用于商品推荐功能

一、环境安装准备 #git拉取 bert-base-chinese 文件#创建 虚拟运行环境python -m venv myicrplatenv#刷新source myicrplatenv/bin/activate#python Django 集成nacospip install nacos-sdk-python#安装 Djangopip3 install Django5.1#安装 pymysql settings.py 里面需要 # 强制…...

数据结构---定长顺序表

1.线性表的定义 存在唯一的一个被称为“第一个”的数据元素&#xff1b;存在唯一的一个被称为“最后一个”的数据元素&#xff1b;除第一个之外&#xff0c;集合中的每一个数据元素都只有一个前驱&#xff1b;除最后一个之外&#xff0c;集合中的每一个数据元素都只有一个后继…...

Elasticsearch 相关面试题

1. Elasticsearch基础 Elasticsearch是什么&#xff1f; Elasticsearch是一个分布式搜索引擎&#xff0c;基于Lucene实现。 Mapping是什么&#xff1f;ES中有哪些数据类型&#xff1f; Mapping&#xff1a;定义字段的类型和属性。 数据类型&#xff1a;text、keyword、integer、…...

冒泡排序(Bubble Sort)详细教程:Java实现与优化

一、什么是冒泡排序&#xff1f; 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它的基本思想是通过两两比较相邻元素&#xff0c;将较大的元素“冒泡”到数列的末尾。每一轮遍历会将一个较大的元素放到正确的位置&#xff0c;直到整个数组有序…...

【git】【reset全解】Git 回到上次提交并处理提交内容的不同方式

Git 回到上次提交并处理提交内容的不同方式 在 Git 中&#xff0c;若要回到上次提交并对提交内容进行不同处理&#xff0c;可使用 git reset 命令搭配不同选项来实现。以下为你详细介绍操作步骤及各选项的作用。 1. 查看提交历史 在操作之前&#xff0c;可通过以下命令查看提…...

矩阵的 正定(Positive Definite)与负定(Negative Definite):从Fisher信息矩阵看“曲率”的秘密

矩阵的正定与负定&#xff1a;从Fisher信息矩阵看“曲率”的秘密 在数学和统计学中&#xff0c;矩阵的“正定性”和“负定性”是一对重要概念&#xff0c;尤其在优化、统计推断和机器学习中频繁出现。比如&#xff0c;Fisher信息矩阵&#xff08;Fisher Information Matrix, F…...

Uniapp 小程序:语音播放与暂停功能的实现及优化方案

界面部分 //开启语音 <button class"open" v-if"showPlayfalse" click"playText">这是开启播放的图片</button >//关闭语音 <button class"close" v-if"showPlaytrue" click"stopText">这是…...

Python基于机器学习的微博舆情情感分析系统,微博评论情感分析可视化系统(全新升级)

大家好&#xff0c;今天为大家带来的是Python基于机器学习的微博舆情情感分析系统&#xff0c;微博评论情感分析可视化系统&#xff0c;这个系统在原本的系统上进行优化升级。 算法从开源框架的 snlow &#xff0c;到支持机器学习的 lstm 算法可以手动输入语句&#xff0c;进行…...

IP-------GRE和MGRE

4.GRE和MGRE 1.应用场景 现实场景 居家工作&#xff0c;公司工作&#xff0c;分公司工作----------需要传输交换数据--------NAT---在该场景中需要两次NAT&#xff08;不安全&#xff09; 为了安全有两种手段-----1.物理专线---成本高 2.VPN--虚拟专用网---隧道技术--封装技…...

内网综合渗透测试——WinterMute: 1靶场

靶场来源 <WinterMute: 1 ~ VulnHub> Wintermute 虚拟机网络配置指南 本实验涉及网络跳转技术&#xff0c;需正确配置VirtualBox网络。所有IP均为动态分配&#xff0c;配置快速简便。 通过"文件 >> 导入虚拟设备"导入各虚拟机。 STRAYLIGHT (网络#1 和 …...

项目进度管理工具:甘特图与关键路径法(2025实战指南)

在全球数字化转型加速的背景下&#xff0c;项目延期率高达42%的现状倒逼管理者掌握科学的进度管理工具。本文结合2025年最新实践&#xff0c;深度解析甘特图与关键路径法的原理及应用&#xff0c;助你构建精准可控的项目进度管理体系。 一、双剑合璧&#xff1a;工具组合的价值…...

deepseek-r1-centos-本地服务器配置方法

参考&#xff1a; 纯小白 Centos 部署DeepSeek指南_centos部署deepseek-CSDN博客 https://blog.csdn.net/xingxin550/article/details/145574080 手把手教大家如何在Centos7系统中安装Deepseek&#xff0c;一文搞定_centos部署deepseek-CSDN博客 https://blog.csdn.net/soso67…...

C# Unity 唐老狮 No.2 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体…...

一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格&#xff0c;用于比较Flask中的…...

SpringBoot整合Mybatis-Plus+Druid实现多数据源

概述 Spring Boot&#xff1a; Spring Boot是一个基于Spring框架的开源Java开发框架&#xff0c;旨在简化Spring应用程序的开发、配置和部署。它提供了一种快速、敏捷的方式来构建独立的、生产级别的Spring应用程序&#xff0c;同时还提供了许多开箱即用的功能和工具&#xff0…...

【Mysql】我在广州学Mysql 系列—— 性能优化相关例题

ℹ️大家好&#xff0c;我是练小杰&#xff0c;时间过得真快&#xff0c;还有2天&#xff0c;2025年2月份就结束了&#xff01;&#xff01;&#x1f606; 本文是针对Mysql数据库中有关性能优化的相关示例&#xff0c;通过本文的学习可以深入了解性能优化的各类命令&#xff01…...

罗成华教授论腹膜后肿瘤核磁共振检查意义

腹膜后器官很少受生理运动的影响&#xff0c;而MRI又可进行除横断面以外的冠状面、矢状面或其它任意切面检查&#xff0c;其图像清晰&#xff0c;故其特别适用于腹膜后肿瘤的术前检查。早期经验显示MRI可提供比&#xff23;&#xff34;更多的信息&#xff0c;不用造影剂术前即…...

CSS3 圆角:实现与优化指南

CSS3 圆角&#xff1a;实现与优化指南 随着网页设计的发展&#xff0c;CSS3 圆角已经成为了现代网页设计中不可或缺的元素之一。本文将详细讲解 CSS3 圆角的基本用法、实现方式以及优化技巧&#xff0c;帮助您在网页设计中更好地运用这一功能。 一、CSS3 圆角基本用法 1.1 基…...

Windows下不建议使用C/C++运行库的本地化功能

Windows不建议setlocale或使用C的std::locale对象等C/C运行库的本地化功能&#xff0c;因为setlocale或C的std::locale对象实现bug多&#xff0c;不稳定&#xff0c;可能存在兼容性问题&#xff0c;如&#xff1a; 1、DOS/Win16下setlocale只支持"C"的locale 2、Wi…...

python-leetcode-乘积最大子数组

152. 乘积最大子数组 - 力扣&#xff08;LeetCode&#xff09; class Solution:def maxProduct(self, nums: List[int]) -> int:if not nums:return 0max_prod nums[0]min_prod nums[0]result nums[0]for i in range(1, len(nums)):if nums[i] < 0:max_prod, min_prod…...

基于YOLO11深度学习的半导体芯片缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

Python入门 — 类

面向对象编程中&#xff0c;编写表示现实世界中的事物和情景的类&#xff08;class&#xff09;&#xff0c;并基于这些类来创建对象&#xff08;object&#xff09;。根据类来创建对象称为实例化&#xff0c;这样就可以使用类的实例&#xff08;instance&#xff09; 一、创建…...

本地大模型编程实战(22)用langchain实现基于SQL数据构建问答系统(1)

使 LLM(大语言模型) 系统能够查询结构化数据与非结构化文本数据在性质上可能不同。后者通常生成可在向量数据库中搜索的文本&#xff0c;而结构化数据的方法通常是让 LLM 编写和执行 DSL&#xff08;例如 SQL&#xff09;中的查询。 我们将演练在使用基于 langchain 链 &#x…...

监听其他音频播放时暂停正在播放的音频

要实现当有其他音频播放时暂停当前音频&#xff0c;你可以使用全局事件总线或 Vuex 来管理音频播放状态。这里我将展示如何使用一个简单的事件总线来实现这个功能。 首先&#xff0c;你需要创建一个事件总线。你可以在项目的一个公共文件中创建它&#xff0c;例如 eventBus.js…...

Docker数据卷操作实战

什么是数据卷 数据卷 是一个可供一个或多个容器使用的特殊目录&#xff0c;它绕过 UFS&#xff0c;可以提供很多有用的特性: 数据卷 可以在容器之间共享和享用对 数据卷 的修改立马生效对 数据卷 的更新&#xff0c;不会影响镜像数据卷 默认会一直存在&#xff0c;即时容器被…...

Go中slice和map引用传递误区

背景 关于slice和map是指传递还是引用传递&#xff0c;很多文章都分析得模棱两可&#xff0c;其实在Go中只有值传递&#xff0c;但是很多情况下是因为分不清slice和map的底层实现&#xff0c;所以导致很多人在这一块产生疑惑&#xff0c;下面通过代码案例分析slice和map到底是…...

代码审计入门学习

简介 HadSky轻论坛程序为个人原创PHP系统&#xff0c;作者为蒲乐天&#xff0c;后端基于puyuetianPHP框架驱动&#xff0c;前端基于 puyuetianUI框架驱动&#xff0c;默认编辑器为puyuetianEditor富文本编辑器&#xff0c;其他非原创框架及驱动JQuery.js 及Font-Awesome字体库…...

排序算法(3):

这是我们的最后一篇排序算法了&#xff0c;也是我们的初阶数据结构的最后一篇了。 我们来看&#xff0c;我们之前已经讲完了插入排序&#xff0c;选择排序&#xff0c;交换排序&#xff0c;我们还剩下最后一个归并排序&#xff0c;我们今天就讲解归并排序&#xff0c;另外我们还…...

AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构

前言 人工智能技术的爆发式发展催生了多样化的AI模型生态&#xff0c;从通用对话到垂直领域应用&#xff0c;从数据挖掘到创意生成&#xff0c;各模型凭借其独特的技术优势与场景适配性&#xff0c;正在重塑全球产业格局。本文将以DeepSeek、ChatGPT、XAI&#xff08;可解释人…...

服务端配置TCP探活,超出探活时间后的行为?

server端启动 &#xff08;完整源码在最后&#xff09; 配置探活 setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, &(int){5}, sizeof(int)); // 空闲60秒后探测setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, &(int){10}, sizeof(int)); // 探测间隔10秒…...

Eclipse安装和配置环境教程包含下载、安装、汉化(附安装包)

文章目录 前言一、JDK 安装二、Eclipse IDE 安装三、Eclipse软件汉化&#xff08;可选&#xff09;四、安装完成 前言 在编程的世界里&#xff0c;一款好的开发工具能让效率大幅提升&#xff0c;Eclipse 2024 便是这样的利器。不过&#xff0c;其安装过程涉及 JDK 配置、软件本…...

nginx简单命令启动,关闭等

启动命令 #启动nginx start nginx重启命令 比如修改了配置文件&#xff0c;用这个命令重启生效 #重启nginx nginx -s reload3&#xff0c;查看端口占用 #查看端口占用 netstat -aon4&#xff0c;关闭nginx 如果使用cmd命令窗口启动nginx&#xff0c; 关闭cmd窗口是不能…...

SQL------搭建sql靶场和打开sql靶场及报错解决

搭建sql靶场 1.下载安装包与文件 在官网上下载phpstudy网址&#xff1a; http://www.xp.cn 下载sqli-labs的网址&#xff1a; https://github.com/Audi-1/sqli-labs 2.下载小皮面板 打开安装包 安装&#xff0c;记得改自己想要安装的路径 打开php版本 记得下载5.几的版本&…...

对话式AI引擎:DeepSeek技术引领多模态交互新篇章

摘要 DeepSeek技术公司推出了一项创新服务——“对话式AI引擎”&#xff0c;仅需两行代码即可激活任意大型AI模型的语音对话功能。这项技术使得文本型AI模型迅速转变为具备实时语音对话能力的多模态交互模型&#xff0c;解决了大型AI模型在语音交互方面的不足&#xff0c;为AI行…...

在什么情况下需要使用光谱相机呢?

1.需要捕捉不可见光信息时 光谱相机不仅能捕捉可见光&#xff0c;还能记录红外、紫外等波段的光谱信息。以下场景尤其适用&#xff1a; 环境监测&#xff1a;检测水质、空气污染物等肉眼无法观察的物质。 农业监测&#xff1a;分析植物的近红外反射率&#xff0c;判断作物健…...

nnUNetv2用自己的数据集训练推理

有什么不懂的大家可以在评论区问我&#xff0c;我一定会积极回复哒&#xff01;&#xff01;&#xff01; 一、环境配置 首先创建一个虚拟环境 conda create -n nnunet python3.9 conda activate nnunet 然后在pytorch官网&#xff0c;安装pytorch&#xff0c;这里我安装的是…...

std::thread的同步机制

在 C 中&#xff0c;std::thread 用于创建和管理线程。为了确保多个线程能正确、安全地访问共享资源&#xff0c;避免数据竞争和不一致问题&#xff0c;需要使用同步机制。 互斥锁&#xff08;std::mutex&#xff09; 原理&#xff1a;互斥锁是一种最基本的同步原语&#xff…...