LLM训练中常用的Benchmarks

在当今人工智能领域,大语言模型(LLM)凭借其在理解和生成人类自然语言文本方面的卓越表现,成为了备受瞩目的焦点。然而,随着LLM的广泛应用,如何对其性能进行准确、全面的评估成为了一个关键问题。在这样的背景下,大语言模型基准测试应运而生,它是评估LLM不可或缺的重要工具。

通过提供一致的评估方法,基准测试能够帮助研究人员和开发者了解模型在不同任务上的表现,从基本的语言理解到更复杂的推理和编程任务。这种标准化的评估方式不仅有助于模型的改进和优化,还能促进不同模型之间的公平比较,推动整个领域的发展

1 什么是Benchmarks

什么是LLM基准测试

LLM基准测试是一类精心设计的结构化测试,专门用于衡量语言模型在特定任务上的表现。通过一系列预设的任务,基准测试旨在解答一系列关键问题,例如:该LLM是否能够高效且准确地处理编程任务,助力软件开发?在对话场景中,它能否理解用户意图并给出精准、相关的回答,提供优质的交互体验?面对复杂的推理问题,它是否具备足够的逻辑思维能力来找到解决方案?这些问题的答案,将直接反映出模型在不同应用场景下的实用性和可靠性。

LLM基准测试的关键特征

  • 标准化测试:每个基准测试都包含一组具有明确正确答案的任务,这为评估提供了统一且稳定的标准。无论何时进行测试,也无论由谁来执行评估,都能依据相同的标准对模型的输出进行判断,确保了评估结果的一致性和可重复性。

  • 多样化的评估领域:基准测试的评估范围十分广泛,涵盖了语言理解、数学问题解决、编码能力、对话质量以及安全性和伦理考量等多个重要方面。这意味着它不仅关注模型的语言处理能力,还对其在其他关键领域的表现进行考察,从而更全面地反映模型的综合实力。

为什么需要LLM基准测试

  • 评估的标准化和透明度:在众多不同的LLM之间进行性能比较时,基准测试起到了关键的桥梁作用。它提供了统一的评估框架,使不同模型的性能对比更加公平、公正,且整个评估过程透明、可复现。此外,对于新推出的LLM,基准测试能够迅速给出其能力的直观快照,帮助研究人员和开发者快速了解其在同类模型中的位置和优势。

  • 进展跟踪和优化:随着时间的推移和研究的深入,研究人员需要了解模型的性能是否有所提升,以及在哪些方面还存在不足。基准测试就像一个精准的监测器,能够清晰地显示模型的进展情况。通过持续的测试和分析,研究人员可以发现模型的局限性,进而有针对性地进行优化和改进,推动模型不断进化。

  • 模型选择:在实际应用中,从业者需要根据具体的任务需求选择合适的LLM。例如,在开发聊天机器人或客户支持系统时,需要选择对话能力强的模型;在进行数据处理和分析时,可能更看重模型的数学和编程能力。基准测试的结果为从业者提供了重要的参考依据,帮助他们做出更加明智、合理的决策,确保所选模型能够满足实际应用的需求。

LLM基准测试的运作方式

  • 数据集输入和测试:基准测试为LLM提供了丰富多样的任务,如回答各种类型的问题、生成符合特定要求的代码等。同时,每个基准测试都配备了专门的数据集,其中包含了大量的文本输入以及与之对应的“真实”答案。模型在接收到任务和输入数据后,需要运用自身的算法和知识储备,生成相应的输出结果。

  • 性能评估和打分:模型完成任务后,其输出结果将依据一系列标准化的评估指标进行严格评估。例如,对于回答问题的任务,可能会使用准确率来衡量答案的正确性;对于生成文本的任务,则可能采用BLEU分数等指标来评估生成文本与参考文本的相似度。通过这些量化的指标,能够准确地衡量模型在各个任务上的表现。

  • LLM排名和排行榜:根据模型在各项基准测试中的得分,对它们进行综合排名,并将结果展示在排行榜上。排行榜通常会汇总多个基准测试的结果,形成一个全面的模型性能评估体系。这使得研究人员和开发者可以直观地了解不同模型的优劣,为进一步的研究和应用提供有力的参考。

2 Reasoning Benchmarks

2.1 ARC: The Abstraction and Reasoning Challenge

抽象与推理语料库(ARC)是一个具有重要意义的人工智能基准测试数据集,以下是对它的详细介绍:

  • 背景与目的

    • 创建者与时间:由谷歌的软件工程师和人工智能研究员François Chollet于2019年创建。

    • 设计目的:旨在衡量机器与人类学习之间的差距,测试人类和机器在具有挑战性的分布外泛化方面的能力,推动人工智能向实现人类水平的通用智能发展。

  • 任务形式与数据特点

    • 任务构成:包含1000个基于图像的推理任务。每个任务由网格组成,网格大小在1x1到30x30之间,网格中的单元格填充有0到9的数字,每个数字由不同的颜色表示。

    • 数据格式:以JSON格式存储,每个任务的JSON文件包含“train”和“test”两个字段,“train”通常包含2 - 5个输入 - 输出图像对作为训练实例,“test”一般包含1个输入 - 输出图像对用于测试。

    • 测试要求:测试者需要根据训练实例中呈现的模式和规律,找出适用于所有测试输入的正确输出网格,包括确定输出网格的大小并正确填充每个单元格的颜色或数字,只有完全匹配预期答案的输出才被认为是正确的。

  • 测试特点

    • 强调泛化能力:要求算法仅依靠人类自然拥有的关于世界的先验知识,即核心知识,来解决各种以前未知的任务,而不是依赖特定的领域知识或记忆特定的模式。

    • 模拟人类流体智力:ARC可以被视为一种针对人工智能的智商测试,它不依赖于特定任务来衡量智力,而是挑战算法从少量示例中学习并解决新任务,类似于人类的流体智力,即解决新问题和适应新情况的能力。

  • 评估与意义

    • 评估标准:通过预测准确率来衡量模型或人类在ARC任务上的表现,即正确解决的任务数量与总任务数量的比例。

    • 重要意义:作为一个独特的基准,ARC能够帮助研究人员评估人工智能系统在抽象推理和泛化能力方面的进展,凸显了当前人工智能方法的局限性,为推动人工智能技术的发展提供了重要的参考和方向。例如,它可以帮助研究人员发现模型的弱点,进而改进神经网络架构,探索更高效的学习策略和网络结构。

2.2 Massive Multi-discipline Multimodal Understanding (MMMU)

大规模多学科多模态理解(Massive Multi - discipline Multimodal Understanding,简称 MMMU),是一项在人工智能领域用于评估多模态模型性能的重要基准测试。其核心目标在于衡量模型在处理需要大学水平学科知识及审慎推理的大规模多学科任务时的表现,为推动人工智能迈向专家级通用人工智能(AGI)助力。

  • 数据构成与任务形式

    • 数据来源广泛:MMMU 的问题集规模庞大且极具深度,包含从大学考试、测验以及教科书里精心收集的 11,500 个多模态问题。这些问题覆盖了艺术与设计、商业、科学、健康与医学、人文与社会科学、技术与工程这六大核心学科领域。

    • 学科跨度丰富:在学科分布上,涵盖了 30 个具体学科以及 183 个子领域,从基础科学到专业技术,从人文社科到艺术创作,全面考察模型在不同知识范畴内的理解与应用能力。

    • 多模态融合:数据集中涉及 30 种高度异构的图像类型,包括图表、示意图、地图、表格、乐谱和化学结构等。模型不仅需要处理文本信息,还需结合图像等多种模态信息进行推理,例如在解读科学图表时,要从图表呈现的数据趋势、标注信息等图像元素,结合题目文本中的问题,给出准确回答;在分析音乐乐谱时,需理解乐谱中的音符、节奏等图像化信息,结合相关音乐理论知识的文本描述,完成相应任务。问题形式丰富多样,约 93% 的问题为选择题,其余为开放式问题。选择题通常提供四个选项和多达七幅图像,开放式问题则不设置选项,要求模型依据多模态信息独立给出解答。

  • 测试目的与特点

    • 强调专业知识与推理:与过往的一些基准测试不同,MMMU 专注于基于特定领域知识的高级感知和推理。它要求模型完成的任务类似于专家在实际工作中面临的挑战,例如在医学领域,模型可能需要根据患者的病历文本描述以及 X 光片、CT 影像等多模态信息,进行疾病诊断推理;在工程领域,结合设计图纸等图像和相关技术说明文本,判断工程方案的可行性,以此考察模型在专业场景下处理复杂信息的能力。

    • 评估通用智能潜力:通过让模型处理如此大规模、多学科、多模态的任务,MMMU 旨在评估模型是否具备向专家级通用人工智能发展的潜力。它模拟了现实世界中人类专家在面对各种复杂问题时,综合运用多领域知识和多感官信息进行决策和解决问题的过程,检验模型是否能够跨越不同学科和模态,实现高效准确的理解与推理。

  • 评估过程与意义

    • 评估流程:在评估时,模型首先接收包含文本与图像等多模态的输入信息,例如一道关于历史地图分析的题目,模型既要读取地图中显示的地理区域、边界、标注等图像内容,又要理解题目中关于特定历史时期、事件与地图关联的文本描述。随后,模型根据所学知识和算法进行推理,针对选择题从给定选项中选择正确答案,对于开放式问题则生成相应解答。评估者会依据标准化的指标,如准确率等,来判断模型答案的正确性。

    • 评估意义:通过 MMMU 评估,研究人员和开发者能够清晰了解多模态模型在复杂多学科任务上的理解和推理能力。以对 14 个开源语言模型以及 GPT - 4V 和 Gemini 等商业模型的评估为例,即使先进的 GPT - 4V 和 Gemini Ultra 分别也仅达到 56% 和 59% 的准确率,这一结果直观地揭示了当前模型在多学科多模态理解方面存在较大提升空间,为后续开发下一代多模态基础模型提供了极具价值的方向指引,促使研究者们不断优化模型架构、改进训练算法,以提升模型在多学科知识融合、多模态信息处理等方面的能力。

  • 进阶版本:MMMU - pro

MMMU - pro 是 MMMU 更具挑战性的版本。它通过一系列方式进一步提升了测试难度。一方面,过滤掉那些仅依靠文本语言模型就能回答的问题,确保测试的多模态特性;另一方面,将候选选项从 4 个增加到 10 个,极大地增加了模型选择正确答案的难度;此外,还引入仅依靠图像信息回答问题的视觉输入设置,更纯粹地考察模型对图像模态信息的理解和处理能力。这种进阶版本能够更精准、更严格地评估模型的多模态理解和推理能力,帮助研究人员更深入地挖掘模型潜力,发现模型在不同模态处理上的细微问题,为模型的进一步优化提供更有针对性的依据。

是否清晰呈现了它的关键信息?如果还有其他方面想深入了解,比如具体的测试流程示例,都能跟我说。

2.3 GPQA: A Challenging Benchmark for Advanced Reasoning

GPQA(Graduate-Level Question Answering)即研究生水平问答基准测试,是一项聚焦于高级推理能力评估的重要测试体系,在人工智能尤其是大语言模型性能评测领域占据关键地位。

设计初衷与目标

随着人工智能技术的迅猛发展,特别是大语言模型在各类自然语言处理任务中取得显著进展,对模型进行更加严苛、全面且深入的评估显得尤为必要。GPQA 的诞生,旨在构建一个专门用于检验模型在研究生级别知识水平及复杂推理场景下表现的基准。其核心目标是精准衡量模型是否具备深入理解专业知识、运用逻辑思维解决复杂问题以及进行审慎推理的能力,推动人工智能迈向能够处理现实世界中高难度专业任务的新阶段,助力实现专家级通用人工智能(AGI)的长远目标。

数据构成与特点

  • 学科覆盖广泛:GPQA 涵盖众多学科领域,从科学、技术、工程和数学(STEM)学科,如物理学、计算机科学、机械工程、高等数学等,到人文社科领域,像哲学、历史、文学、社会学等,以及医学、商业等专业学科,几乎囊括了研究生学习阶段涉及的各个知识范畴。这种广泛的学科覆盖,确保了能够全面考察模型在不同专业知识背景下的推理能力,避免模型仅在单一或少数领域表现出色,而在其他领域存在明显短板的情况。

  • 问题专业性强:测试中的问题均处于研究生水平,具有相当高的专业深度和复杂度。这些问题并非简单的知识回忆,而是需要模型综合运用多方面知识进行分析、推理和判断。例如,在医学领域,可能会给出一个复杂病例的症状描述、检查结果等多模态信息,要求模型诊断疾病并制定治疗方案;在经济学领域,可能基于特定的市场数据和经济理论,让模型预测市场趋势并分析政策影响。问题的设计常常涉及多个知识点的交叉融合,对模型的知识储备和推理能力提出了极高要求。

  • 推理要求高:大量问题需要模型进行深度推理,包括逻辑推理、因果推理、数学计算推理等多种形式。许多题目无法通过简单的模式匹配或记忆检索来回答,而是要依据给定信息,运用逻辑规则和专业知识,逐步推导得出结论。以数学问题为例,可能需要模型运用高等数学中的复杂公式和定理,进行多步骤的计算和证明;在逻辑推理问题中,模型要分析复杂的逻辑关系,判断论点的有效性、论证的合理性等。这种对推理能力的高度强调,使得 GPQA 成为检验模型是否具备高级思维能力的关键基准。

测试任务与形式

  • 任务类型多样:GPQA 的测试任务丰富多样,主要以问答形式呈现。既有选择题,提供多个选项供模型选择正确答案,选项的设计具有很强的迷惑性,旨在考察模型对知识的准确理解和辨析能力;也包含开放式问题,要求模型根据问题描述,独立生成完整的回答,这种形式更能检验模型的知识组织、逻辑表达以及深度推理能力。例如,在历史学科中,选择题可能会围绕某一历史事件的原因、影响设置多个看似合理的选项,让模型辨别;开放式问题则可能要求模型分析某一历史时期的文化发展特点及其背后的原因。

  • 多模态融合:部分问题涉及多模态信息的处理,除了文本描述外,还可能包含图表、数据、图片等。模型需要综合理解和分析不同模态的信息,从中提取有用线索并进行整合推理。比如在科学问题中,可能会给出实验数据图表以及相关的文字说明,要求模型根据图表趋势和文字描述分析实验结果、得出科学结论;在工程领域,可能提供设计图纸和技术规范文本,让模型评估设计的可行性、提出改进建议等。多模态融合的测试形式,更贴近现实世界中专业人士获取和处理信息的方式,进一步提升了测试的真实性和挑战性。

2.4 Measuring Massive Multitask Language Understanding (MMLU)

MMLU 数据集概述

Measuring Massive Multitask Language Understanding(MMLU)即大规模多任务语言理解数据集,它是人工智能领域中用于评估模型能力的重要基准数据集。该数据集诞生的背景是随着语言模型不断发展,急需一种能够全面、深入衡量模型在多种任务和广泛知识领域表现的工具。MMLU 旨在通过仅在零样本和少样本设置下评估模型,精准衡量模型在预训练期间所获取的知识水平与应用能力 。

数据构成与特点

  • 学科覆盖广度:MMLU 涵盖了极为广泛的学科领域,综合运用了数学、物理、历史、法律、医学和伦理学等总计 57 个科目。这些学科横跨科学、技术、人文社科、医学、法学、艺术等多个大类,从基础学科知识到专业领域的高阶内容均有涉及。例如在科学领域,包含了物理学中量子力学、相对论等前沿理论相关的问题,以及化学里复杂化学反应机理的探讨;在人文社科方面,囊括了世界历史长河中不同时期重大事件的分析,以及哲学领域经典思想流派的解读等。这种广泛的学科覆盖,能全面检验模型对不同知识范畴的理解与掌握程度,避免模型仅在单一或少数领域展现优势,而在其他领域存在明显缺陷。

  • 题目难度层级:数据集中的题目难度跨度大,从高中水平的基础知识问题,逐步上升到专业级和学术级的复杂难题。例如数学科目中,既有高中阶段的函数、几何基础运算与证明题,也有高等数学里涉及微积分、线性代数的复杂推导与应用问题;医学科目中,既包含常见疾病症状、诊断标准等基础认知问题,也有针对罕见病诊断与治疗方案制定等专业且高难度的问题。这种多层次的难度设置,可深入考察模型在不同知识难度层级下的推理与解决问题能力,测试其知识的深度与广度。

  • 数据格式统一:MMLU 的每条数据格式统一,均为多项选择题形式。即给定一个问题(question)以及 4 个选项,模型需要从这些选项中选择出正确答案。这种标准化的数据格式,一方面便于模型进行处理与回答,另一方面也使得评估过程更加规范、易于操作,能够通过统一的评分标准对模型的回答准确性进行评判。

测试目的与应用场景

  • 评估模型知识与推理能力:其核心目的是评估预训练模型在大规模多任务场景下的语言理解与知识应用能力。通过零样本和 5-shot 等测试方式,观察模型在没有或仅有少量示例的情况下,能否凭借预训练学到的知识,准确理解问题并进行推理,选出正确答案。这不仅考验模型的语言理解能力,更涉及到其预训练数据的范围广度以及推理能力的强弱。例如在法律科目测试中,模型需要理解复杂的法律条文描述的问题,并依据相关法律知识和推理规则,从选项中判断出符合法律规定的答案,以此检验模型在法律知识领域的理解与推理水平。

  • 学术研究与模型开发:在学术研究中,MMLU 被广泛用于研究不同模型在多任务、多学科知识处理上的性能表现。研究人员可以通过分析模型在 MMLU 上的答题情况,深入了解模型的优势与不足,进而优化模型架构、改进训练算法,提升模型的综合能力。在模型开发过程中,MMLU 可作为重要的评估基准,帮助开发者筛选出更具潜力的模型版本,推动模型向更强大、更智能的方向发展。例如在开发通用语言模型时,利用 MMLU 评估不同训练阶段的模型,根据评估结果调整训练策略,增强模型在多学科知识处理方面的能力。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的医学CT图像肺结节智能检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】

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

Selenium | 无法正常打开Google Chrome浏览器 转 Edge Chrome

目录 背景案例 换成 Edge Chrome 驱动下载 配置环境 代码案例 测试结果 背景案例 Python正常,环境正常,驱动正常,但是就是打不开浏览器,就是一直报错,导致很烦躁 换成 Edge Chrome 与 Google Chrome浏览器一样…

【JavaEE】文件操作和IO

【JavaEE】文件操作和IO 一、认识文件1.1 狭义和广义的文件概念1.2 文件路径1.3 文件的分类 二、Java 中操作⽂件2.1 File类2.2 代码演示 三、文件内容的读写 —— 数据流3.1 字节流和字符流字节流字符流 3.2 特别注意 四、实战演示4.1 查找删除文件4.2 普通文件的复制4.3 文件…

【数据挖掘】通过心脏病数据案例熟悉数据挖掘的完整过程

心脏病数据挖掘过程 一、加载数据源 # 如果没有安装数据源所依赖的库,则先安装数据源所在的python库: pip install ucimlrepo # 引入pandas和ucimlrepo import pandas as pd from ucimlrepo import fetch_ucirepo# fetch dataset Heart Disease dataset的Id为45 h…

【Golang】第二弹-----变量、基本数据类型、标识符

笔上得来终觉浅,绝知此事要躬行 🔥 个人主页:星云爱编程 🔥 所属专栏:Golang 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 一、变量 1.1基本介绍…

go个人论坛项目

搭建个人论坛 项目地址:MyForum: goginvue搭建论坛 - Gitee.com PS:有些地方没有写好,请选择性查看 初始化项目 创建目录结构 利用ini配置初始化框架 [server] AppMode debug HttpPort :3000 JwtKey "dhjasdkajh321"[databa…

日志系统项目——准备工作了解类的设计模式如单例模式、工厂模式、代理模式

1.六大原则 1.1 单一职责原则 类的职责应该单⼀,⼀个⽅法只做⼀件事。职责划分清晰了,每次改动到最⼩单位的⽅法或 类。 使⽤建议:两个完全不⼀样的功能不应该放⼀个类中,⼀个类中应该是⼀组相关性很⾼的函 数、数据的封装 ⽤例…

股指期货基差怎么计算?公式介绍

先说说啥是基差。简单来说,基差就是股指期货价格和现货指数价格之间的差值。就好比你手里有一张股票指数的“未来提货券”(股指期货),但你现在就能买到股票指数(现货指数),这两者之间的价格差&a…

Comfyui 与 SDwebui

ComfyUI和SD WebUI是基于Stable Diffusion模型的两种不同用户界面工具,它们在功能、用户体验和适用场景上各有优劣。 1. 功能与灵活性 ComfyUI:ComfyUI以其节点式工作流设计为核心,强调用户自定义和灵活性。用户可以通过连接不同的模块&…

深圳传音控股手机软件开发岗内推

1.负责手机UI、功能开发 2.负责手机具体模块(通信、多媒体、系统、应用)独立开发 3.负责手机软件调试、log分析等 推荐码:EVHPB3 ,简历第一时间送到HR面前~

never_give_up

一个很有意思的题: never_give_up - Bugku CTF平台 注意到注释里面有1p.html,我们直接在源代码界面看,这样就不会跳转到它那个链接的: 然后解码可得: ";if(!$_GET[id]) {header(Location: hello.php?id1);exi…

Aliyun CTF 2025 web 复现

文章目录 ezoj打卡OKoffens1veFakejump server ezoj 进来一看是算法题,先做了试试看,gpt写了一个高效代码通过了 通过后没看见啥,根据页面底部提示去/source看到源代码,没啥思路,直接看wp吧,跟算法题没啥关系,关键是去…

BigFoot EventAlertMod lua

BigFoot EventAlertMod lua脚本插件,追踪当前目标的DOT,自身的HOT,持续时间监控 D:\Battle.net\World of Warcraft\_classic_\Interface\AddOns\EventAlertMod 想知道技能的ID,执行命令如下:本例子为“神圣牺牲” /e…

ICLR 2025|DAMO开发者矩阵合作专场

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! AITIME 01 ICLR 2025预讲会合作专场 AITIME 02 专场信息 01 Dynamic Diffusion Transformer 讲者:赵望博,达摩院研究型实习生 时间:3月12日 19:00-19:15 报告简介&#xff1a…

解决jsch远程sftp连接报错:Exception:Algorithm negotiation fail

问题背景 今天遇见了使用JSch连接服务器时,报错Exception:Algorithm negotiation fail的问题!研究了半天哇!终于解决啦!把解决方案在这里给大家共享一下子! 问题原因 问题原因在于,JSch所支持的加密算法…

【C++】C++11新特性

目录 列表初始化 左值与右值 左值引用和右值引用 移动构造和移动赋值 类型推导 lambda 捕捉列表 函数对象及绑定 bind函数 包装器 Args参数包 抛异常 列表初始化 在C11中一切皆可用列表初始化。 用法:直接在变量名后面加上初始化列表进行初始化 cl…

FreeBSD下安装npm Node.js的22版本 并简单测试js服务器

FreeBSD下安装Node.js 在FreeBSD下安装Node.js很方便,直接pkg安装即可。 使用pkg install安装npm sudo pkg install npm-node22 Updating FreeBSD repository catalogue... Fetching data.pkg: 100% 7 MiB 2.5MB/s 00:03 Processing entries: 100% FreeB…

云原生可观测性体系:数字世界的神经感知网络

引言:从监控到全景式观测的范式升级 Datadog每日处理百万亿指标,Elastic APM实现万级服务拓扑动态发现。Grafana Loki日志分析延迟降至200ms内,Prometheus单集群支持千万时序存储。Uber通过全链路追踪压缩故障定位时间至秒级,Net…

基于VMware的Ubuntu22.04系统安装和配置以及解决Ubuntu共享文件夹无法实现的问题

一、前期准备 本次安装的虚拟机软件是 VMware Workstation Pro 17 登录跳转到 所有产品 进行下载 ​​​跳转到下载页面​​​ 选择 Windows 产品进行安装 勾选协议同意下载 离线版提供:大家根据自己电脑版本配置进行选择下载 本篇使用的虚拟机版本为 VMware Wor…

线程同步与互斥

目录 资源共享问题 (一)临界资源与临界区 (二)多线程并发访问问题 (三)锁 互斥锁原理 加锁原理 解锁原理 互斥锁相关操作接口 互斥锁封装 死锁 死锁产生的四个必要条件 解决死锁方法 &#xff…