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

数据库并发控制问题

并发控制问题是数据库管理系统(DBMS)中处理多个事务并发执行时,确保数据一致性、可靠性和完整性的一系列技术和挑战。并发控制问题通常与事务的隔离性和事务之间的相互影响有关。以下是并发控制中主要的几种问题及其解决方式的详细解释:

一、脏读(Dirty Read)

指一个事务(事务 A)读取了另一个事务(事务 B)尚未提交的数据。

1.示例

事务 A 修改了某个数据,但没有提交。

事务 B 在事务 A 提交之前读取了事务 A 修改的数据。

如果事务 A 发生回滚,事务 B 读取的数据就不再有效。

2.解决方式

使用较高的隔离级别来避免脏读,例如:读已提交(Read Committed)隔离级别可以防止脏读。

二、不可重复读(Non-repeatable Read)

指在同一事务中,两次读取相同的数据时,数据的值发生了变化。这是由于其他事务在事务 A 读取数据后修改了数据并提交。

1.示例

事务 A 读取了某个数据(如账户余额)。

事务 B 修改了该数据并提交。

事务 A 再次读取相同的数据时,发现其值已被事务 B 修改。

2.解决方式

使用可重复读(Repeatable Read)隔离级别。确保在一个事务内读取的数据始终保持一致,不会被其他事务修改。

三、幻读(Phantom Read)

指在一个事务执行两次相同查询之间,其他事务插入、删除或更新了数据,导致查询结果集发生变化。通常发生在涉及到范围查询的场景中。

1.示例

事务 A 执行了查询,获取了一个结果集(如查询所有余额大于 1000 元的账户)。

事务 B 向数据库插入了一个符合该查询条件的新记录,并提交。

事务 A 再次执行相同的查询时,结果集增加了新记录,发生了变化。

2.解决方式

使用串行化(Serializable)隔离级别来防止幻读。串行化隔离级别通过锁定数据或强制事务顺序执行,避免了幻读的问题。

四、死锁(Deadlock)

指两个或多个事务在等待对方释放资源的过程中形成的循环依赖,导致这些事务无法继续执行下去。

1.示例

事务 A 锁定了资源 1,等待资源 2。

事务 B 锁定了资源 2,等待资源 1。

由于相互等待,两个事务都无法继续执行。

2.解决方式

(1)死锁检测

定期检查系统中是否存在死锁,并中止一个或多个事务以打破死锁。

(2)死锁预防

通过加锁顺序、避免循环等待等策略,减少死锁的发生。 

五、事务隔离级别

事务隔离级别定义了事务之间相互隔离的程度,并直接影响并发控制的效果。数据库管理系统中通常有四种标准的事务隔离级别:

1.读未提交(Read Uncommitted)

最低隔离级别,允许事务读取未提交的数据,可能导致脏读、不可重复读和幻读。

2.读已提交(Read Committed)

防止脏读,但仍然可能发生不可重复读和幻读。

3.可重复读(Repeatable Read)

防止脏读和不可重复读,但仍然可能发生幻读。

4.串行化(Serializable)

最高的隔离级别,保证事务完全隔离,避免脏读、不可重复读和幻读,但会显著降低并发性能。

六、并发控制的解决方案

并发控制的目标是保证多个事务能够并发执行,并且保证数据一致性和事务的隔离性。数据库系统中通常通过两种主要的技术来实现并发控制:

1. 锁机制

锁是最常用的并发控制机制之一,数据库系统使用锁来管理并发事务对资源(如数据行、数据表等)的访问。

锁机制通过串行化事务的执行,保证事务的隔离性,但也会带来性能开销,尤其是锁的争用和死锁问题。

锁类型:

(1)共享锁(S锁)

允许多个事务共享访问数据,但不允许修改数据。

(2)排他锁(X锁)

只有持有锁的事务可以访问数据,其他事务无法读取或修改该数据。

(3)意向锁

用于表示事务将要对数据的锁意图。意向锁分为意向共享锁(IS)和意向排他锁(IX)。

2. 时间戳排序

时间戳排序是一种基于时间戳的并发控制方法。每个事务都有一个唯一的时间戳,系统按照事务的时间戳来决定它们的执行顺序。事务按照时间戳的顺序执行,从而避免了不同事务之间的冲突。

这种方法主要通过避免冲突来保证事务的顺序和一致性,通常适用于不需要长时间持有锁的场景。

3.MVCC(多版本并发控制)

是一种并发控制机制,广泛应用于数据库管理系统(DBMS)中,旨在提供多用户并发访问数据时的隔离性,同时避免读写冲突,从而提高数据库的并发性能和数据一致性。

通过维护数据的多个版本来实现并发访问控制。在数据库中,每一条数据都有多个版本,每个版本都有一个时间戳或事务ID,数据库通过这些版本控制并发事务的执行,避免了传统的锁机制对性能的影响。

七、总结

并发控制问题是数据库事务管理中的核心问题,主要包括脏读、不可重复读、幻读和死锁等。不同的并发控制技术(如锁机制、时间戳排序)和隔离级别(如读未提交、可重复读等)有助于确保数据的一致性和事务的隔离性。在实际应用中,需要根据系统的需求和性能要求来选择合适的并发控制方案。

相关文章:

数据库并发控制问题

并发控制问题是数据库管理系统(DBMS)中处理多个事务并发执行时,确保数据一致性、可靠性和完整性的一系列技术和挑战。并发控制问题通常与事务的隔离性和事务之间的相互影响有关。以下是并发控制中主要的几种问题及其解决方式的详细解释&#…...

(五)智能体与工具协同——打造智能对话的超级助手

上一篇:(四)数据检索与增强生成——让对话系统更智能、更高效 在前四个阶段,我们已经搭建了一个功能强大的智能对话,并深入探讨了输入输出处理、链式工作流构建和数据检索与增强生成的细节。现在,我们将进…...

第十三届蓝桥杯 2022 省 B 刷题统计

题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a a a 道题目,周六和周日每天做 b b b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n n n 题? 输入格式 输入一行包含三个整数 a , b a, b a,b 和 n n n. 输出格…...

NLP/大模型八股专栏结构解析

1.transformer 结构相关 (1)transformer的基本结构有哪些,分别的作用是什么,代码实现。 NLP高频面试题(一)——Transformer的基本结构、作用和代码实现 (2)LSTM、GRU和Transformer结…...

不在 qtdesigner中提升,进行主题程序设计

以下是无需在Qt Designer中提升控件的完整主题化方案&#xff0c;保持现有代码结构的同时实现动态阴影效果管理&#xff1a; 一、增强主题管理器&#xff08;支持动态控件发现&#xff09; // thememanager.h #pragma once #include <QObject> #include <QSet> #…...

TDengine 3.3.6.0 版本中非常实用的 Cols 函数

简介 在刚刚发布的 TDengine 3.3.6.0 版本 中&#xff0c;新增了一个非常实用的 函数COLS &#xff0c;此函数用于获取选择函数所在行列信息&#xff0c;主要应用在生成报表数据&#xff0c;每行需要出现多个选择函数结果&#xff0c;如统计每天最大及最小电压&#xff0c;并报…...

MessageQueue --- RabbitMQ WorkQueue and Prefetch

MessageQueue --- RabbitMQ WorkQueue and Prefetch 什么是WorkQueue分发机制 --- RoundRobin分发机制 --- PrefetchSpring example use prefetch --- Fair Dispatch 什么是WorkQueue Work queues&#xff0c;任务模型。简单来说就是让多个消费者绑定到一个队列&#xff0c;共同…...

第四章:透明多级分流系统_《凤凰架构:构建可靠的大型分布式系统》

第四章&#xff1a;透明多级分流系统 一、客户端缓存 核心目标&#xff1a;减少重复请求&#xff0c;降低服务端压力。 1. 强制缓存 定义&#xff1a;客户端直接根据缓存规则决定是否使用本地缓存&#xff0c;无需与服务端交互。关键HTTP头&#xff1a; Cache-Control&#…...

题解:AT_abc241_f [ABC241F] Skate

一道经典的 bfs 题。 提醒&#xff1a;本题解是为小白专做的&#xff0c;不想看的大佬请离开。 这道题首先一看就知道是 bfs&#xff0c;但是数据点不让我们过&#xff1a; 1 ≤ H , W ≤ 1 0 9 1\le H,W\le10^9 1≤H,W≤109。 那么我们就需要优化了&#xff0c;从哪儿下手…...

热题100-字母异位词分组

方法用Arrays.sort对每个String 进行排序&#xff0c;毕竟排序以后都一样了&#xff0c;然后放入Map中的key跟value&#xff0c;可以一对多&#xff0c;然后返回的时候只要返回Map中所有的values就可以了 class Solution {public List<List<String>> groupAnagram…...

WiFi加密协议

目录 1. 认证(Authentication)‌ ‌1.1 开放系统认证(Open System Authentication)‌ 1.2 共享密钥认证(Shared Key Authentication)‌ ‌1.3 802.1X/EAP认证(企业级认证)‌ ‌2. 关联(Association)‌ ‌3. 加密协议(Security Handshake)‌ ‌整体流程总结‌…...

【AI提示词】书籍推荐专家

提示说明 帮助您找到适合您的好书。 提示词 ## Role: 书籍推荐专家## Profile: - author: xxx - version: 1.0.0 - language: 中文 - description: 我是一位书籍推荐专家&#xff0c;我可以帮助您找到适合您的好书。## Goals: - 吸引读者的注意力&#xff0c;引导他们阅读更…...

Linux进程间通信——有名管道

一.概念 函数形式&#xff1a;int mkfifo(const char \*filename,mode_t mode); 功能&#xff1a;创建管道文件 参数&#xff1a;管道文件文件名\路径&#xff0c;权限&#xff0c;创建的文件权限仍然和umask有关系。 返回值&#xff1a;创建成功返回0&#xff0c;创建失败返回…...

JavaScript基础--01-JS简介

字面量&#xff1a;数字、字符串、布尔值 前言JavaScript背景Web前端有三层&#xff1a;发展历史JavaScript的发展&#xff1a;蒸蒸日上 JavaScript介绍JavaScript入门易学性JavaScript是脚本语言JavaScript的组成 JavaScript 的特点特点1&#xff1a;解释型语言特点2&#xff…...

2025年 能够有效提升AI的生成质量和逻辑严谨性 的通用型系统提示

以下是三个经过精心设计的通用型系统提示&#xff08;System Prompt&#xff09;&#xff0c;能够有效提升AI的生成质量和逻辑严谨性&#xff0c;适用于各类对话、分析和创作场景&#xff1a; Prompt 1 - 专家级分步验证模式 你是一个具备跨领域知识整合能力的超级AI&#xff…...

xss攻击

XSS 攻击&#xff0c;即跨站脚本攻击&#xff08;Cross - Site Scripting&#xff09;&#xff0c;是一种常见的 Web 应用程序安全漏洞。以下是关于它的详细介绍&#xff1a; 原理 输入输出控制不严&#xff1a;程序对用户输入和输出处理不当。用户输入的数据没有经过充分的过…...

Node.js核心模块及Api详解

以下是 Node.js 最常用的核心模块及 API 详解&#xff0c;按使用频率和重要性分类整理&#xff1a; 一、高频核心模块 1. fs 文件系统 const fs require(fs); const fsPromises require(fs).promises; // Promise 版本// 异步读取文件&#xff08;推荐&#xff09; fs.read…...

解析keras.layers.Layer中的权重参数

文章目录 概要__init__()build()add_weight() 概要 keras.layers.Layers是所有层对象的父类,在keras.layers下所有实现类都是其子类&#xff0c;自定义层时需要继承该类。 init() Layer的构造函数&#xff0c;需要注意两个参数trainable和name trainable&#xff1a;指定该层…...

原型设计工具即时设计的简单使用攻略

即时设计是一款国产在线协同设计工具&#xff0c;支持从原型设计到开发交付的全流程&#xff0c;尤其擅长Web/App界面原型制作。其核心优势体现在&#xff1a; • 零门槛入门&#xff1a;浏览器直接访问无需安装&#xff0c;中文界面友好 • 资源生态完善&#xff1a;内置3000原…...

深入解析C++智能指针:从内存管理到现代编程实践

一、智能指针核心概念 1.1 智能指针的本质 智能指针是基于**RAII&#xff08;资源获取即初始化&#xff09;**的封装类&#xff0c;通过对象生命周期自动管理动态内存。与传统指针相比&#xff1a; 特性原始指针智能指针内存管理手动自动空指针检查需显式判断支持空状态检测…...

在 Langflow 中构建灵活的自定义组件:从基础到高级实践

本文深入探讨了如何在 Langflow 平台中创建功能丰富的自定义组件。通过详细的目录结构解析、分步实现指南和多个实战案例&#xff0c;帮助开发者掌握利用 Python 生态扩展低代码平台的方法&#xff0c;打造高效的数据处理流程。 理解组件架构设计 自定义组件是在 Langflow 中创…...

【数学建模】(时间序列模型)ARIMA时间序列模型

ARIMA时间序列模型详解及常见时间序列模型概览 文章目录 ARIMA时间序列模型详解及常见时间序列模型概览1 引言2 ARIMA模型的基本概念3 ARIMA模型的组成部分详解3.1 AR模型 (自回归模型)3.2 MA模型 (移动平均模型)3 I (差分) 4 ARIMA模型的建模步骤5 Python实现ARIMA模型6 常见时…...

模版的特性及其编译分离

1.模版的分类 模版参数分为 类型形参 和 非类型形参 类型形参&#xff1a;出现在模版参数列表中&#xff0c;跟在class和typename之后的参数类型名称 非类型形参&#xff1a;就是用一个常量作为类&#xff08;函数&#xff09;模版的一个参数&#xff0c;在类&#xff08;函…...

8电池_多绕组反激式变压器均衡_4模式

(1)8节串联锂离子电池组 (2)多绕组双向反激式变压器&#xff0c;1个变压器解决多电池均衡 (3)亮点&#xff1a;支持1建切换4种均衡算法–>全网唯一 (4)多绕组变压器均衡也能设计多种均衡算法–>全网唯一 锂离子电池均衡&#xff0c;均衡拓扑&#xff0c;均衡算法...

6.1 python加载win32或者C#的dll的方法

python很方便的可以加载win32的方法以及C#编写的dll中的方法或者变量&#xff0c;大致过程如下。 一.python加载win32的方法&#xff0c;使用win32api 1.安装库win32api pip install win32api 2.加载所需的win32函数并且调用 import win32api win32api.MessageBox(0,"…...

STP学习

{所有内容均来自于西安欧鹏的陈俊老师} STP生成树 当二层交换机意外成环路的时候会发生&#xff1a; 1.广播风暴&#xff1a;当广播帧进入环路时&#xff0c;会被不断复制并传输&#xff0c;导致网络中的广播流量急剧增加&#xff0c;消耗大量的网络带宽&#xff0c;降低网络…...

特征值与特征向量:从理论到应用的全面解析

特征值与特征向量&#xff1a;从理论到应用的全面解析 一、特征值与特征向量核心概念 定义 对于方阵 ( A )&#xff0c;若存在标量 ( \lambda ) 和非零向量 ( v )&#xff0c;使得&#xff1a; [ A v \lambda v ] 则 ( \lambda ) 为特征值&#xff0c;( v ) 为对应的特征向…...

【Python】数组的条件逻辑统计运算元素排序

【Python】数组的条件逻辑&统计运算&元素排序&#xff1a; 一.条件逻辑二.统计运算三.数组元素排序检索数组元素是否满足条件查找数组的唯一元素判断元素是否在其他数组中 一.条件逻辑 import numpy as np arr_x np.array([1, 5, 7]) arr_y np.array([2, 6, 8]) arr_…...

数据流和重定向

1、数据流 不管正确或错误的数据都是默认输出到屏幕上&#xff0c;所以屏幕是混乱的。所以就需要用数据流重定向将这两 条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去 标准输入&#xff08;standard input&#xff0c;简称stdin&#xff…...

Jetpack Compose 自定义组件完全指南

Jetpack Compose 自定义组件完全指南 Compose 的声明式 UI 范式为创建自定义组件提供了前所未有的灵活性。本指南将带你从基础到高级全面掌握 Compose 自定义组件的开发技巧。 一、自定义组件基础 1.1 基本结构 一个最简单的自定义组件&#xff1a; Composable fun Greeti…...

ETF 场内基金是什么?佣金最低又是多少呢?

嘿&#xff0c;朋友们&#xff0c;大家好啊&#xff0c;我是StockMasterX&#xff0c;今天咱们就坐下来慢慢聊聊这个话题&#xff0c;ETF 场内基金到底是个啥东西&#xff0c;它的佣金最低能到多少&#xff0c;真的是个值得深挖的问题。 说起ETF&#xff0c;我还记得刚入行那会…...

【C++篇】类与对象(中篇) 解密C++类的核心:六大默认成员函数详解与避坑指南

文章目录 前言一、类的六个默认成员函数二、构造函数1. 概念2. 特性&#xff08;牢记&#xff09; 三、析构函数1. 概念2. 特性&#xff08;牢记&#xff09; 四、拷贝构造函数1. 概念2. 特性&#xff08;牢记&#xff09; 五、赋值运算符重载1. 运算符重载2. 赋值运算符重载前…...

001 vue

https://cn.vuejs.org/ 文章目录 v-bindv-modelv-on修饰符条件渲染/控制&#xff1a;v-if v-show列表渲染 M&#xff1a;即Model&#xff0c;模型&#xff0c;包括数据和一些基本操作 V&#xff1a;即View&#xff0c;视图&#xff0c;页面渲染结果 VM&#xff1a;即View-Mode…...

web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS?

web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS? 1. ExpressionWebEditorFrame 控件的内核及解析机制 在 Visual Studio 中用于 Web Forms 可视化开发的 ExpressionWebEditorFrame 控件主要基于 Internet…...

$R^n$超平面约束下的向量列

原向量&#xff1a; x → \overset{\rightarrow}{x} x→ 与 x → \overset{\rightarrow}{x} x→法向相同的法向量&#xff08;与 x → \overset{\rightarrow}{x} x→同向&#xff09; ( x → ⋅ n → ∣ n → ∣ 2 ) n → (\frac{\overset{\rightarrow}x\cdot\overset{\righta…...

英伟达新一代GPU架构(50系列显卡)PyTorch兼容性解决方案

随着NVIDIA不断推出基于新架构的GPU产品&#xff0c;机器学习框架需要相应地更新以支持这些硬件。本文记录了在RTX 5070 Ti上运行PyTorch时遇到的CUDA兼容性问题&#xff0c;并详细分析了问题根源及其解决方案&#xff0c;以期为遇到类似情况的开发者提供参考。 在Anaconda虚…...

16.2Linux自带的LED灯驱动实验(详细编写)_csdn

这个实验不用自己编写代码。 1、在linux源代码中&#xff0c;打开 stm32mp15-pinctrl.dtsi 文件并进行修改&#xff1a; make uImage LOADADDR0XC2000040 -j8 //编译内核然后&#xff1a; 2、修改设备节点&#xff0c;打开 stm32mp157d-atk.dts&#xff1a; 其中&#xff1…...

Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践(174)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

HashMap 底层原理详解

1. 核心数据结构 JDK 1.7 及之前&#xff1a;数组 链表 JDK 1.8 及之后&#xff1a;数组 链表/红黑树&#xff08;链表长度 ≥8 时转红黑树&#xff0c;≤6 时退化为链表&#xff09; // JDK 1.8 的 Node 定义&#xff08;链表节点&#xff09; static class Node<K,V&g…...

重生之我是去噪高手——diffusion model

diffusion model是如何运作的&#xff1f; 想象一下&#xff0c;你有一张清晰的图片。扩散模型的核心思想分为两个过程&#xff1a; 前向过程&#xff08;Forward Process / Diffusion Process&#xff09;&#xff1a;逐步加噪反向过程&#xff08;Reverse Process / Denois…...

FfreeRTOS有阻塞作用的API

在 FreeRTOS 中,阻塞 API 是指那些会导致调用任务进入阻塞状态(Blocked State)的函数,即任务会暂时让出 CPU,直到某个条件满足(如超时、信号量可用、队列数据到达等)。以下是常见的阻塞 API 分类及示例: 1. 任务延迟(延时) vTaskDelay() 使任务阻塞指定的时间(以系统…...

app逆向专题二:app逆向流程

app逆向专题二&#xff1a;app逆向流程 一、app逆向说明二、拿到APP应用的apk三、使用工具进行查壳四、有壳需要先进行脱壳&#xff0c;拿到dex文件进行反编译五、使用Jadx-Gui或其他工具进行反编译&#xff0c;分析源码&#xff1b;六、根据app的抓包情况拿到加密的关键词参数…...

VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化

在软件开发、系统测试以及技术学习等诸多场景中&#xff0c;使用虚拟机安装操作系统是一种灵活且高效的方式。Ubuntu 作为一款优秀的开源操作系统&#xff0c;在 VMware 虚拟机上的安装与优化备受关注。接下来&#xff0c;将为大家带来 VMware 安装 Ubuntu 的全流程实战指南&am…...

论文阅读笔记——RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION

RDT-1B 论文 模型表达与泛化能力&#xff1a;由于双臂操作中动作空间维度是单臂空间的两倍&#xff0c;传统方法难以建模其多模态分布。 数据&#xff1a;双臂数据少且不同机器人的物理结构和动作空间差异&#xff08;如关节数、运动范围&#xff09;导致数据分布不一致&#x…...

如何一天背300到500个单词

买一本有结构分析或词源注释的目标词汇书。 买一盒口香糖。 准备一摞空白的A4纸。 找一间用于冥想的黑屋子(眼晴闭上就可以了)。 将要背诵的单词进行分组: 5个一小组10个一中组50个一大组100个一个基本包或单元。给自己一个约定,比如背完一中组或一大组单词,嚼一粒口香糖…...

vs环境中编译osg以及osgQt

1、下载 OpenSceneGraph 获取源代码 您可以通过以下方式获取 OSG 源代码: 官网下载:https://github.com/openscenegraph/OpenSceneGraph/releases 使用 git 克隆: git clone https://github.com/openscenegraph/OpenSceneGraph.git 2、下载必要的第三方依赖库 依赖库 ht…...

C++ - 头文件基础(常用标准库头文件、自定义头文件、头文件引入方式、防止头文件重复包含机制)

一、头文件 在 C 中&#xff0c;头文件&#xff08;.h&#xff09;用于函数声明、类定义、宏定义等等 在 Visual Studio 中&#xff0c;头文件通常放在头文件目录中&#xff0c;头文件实现通常放在源文件目录中 二、常用标准库头文件 1、输入输出 <iostream> 标准输入…...

12款字重国外法国风格复古报纸日历设计衬线英文字体安装包 Claire Font Family

Claire 是一个带有坚固衬线的字体系列。该系列中的几种粗细字体非常适合设置大量连续文本&#xff1b;另一方面&#xff0c;极轻和极重的字体在显示应用中配合使用效果很好。Clair 中的字体具有垂直轴&#xff0c;其设计让人联想到当代报纸字体以及 Century 模型中的十九世纪晚…...

Java 类型转换和泛型原理(JVM 层面)

一、类型转换 概念解释&#xff1a; 编译类型&#xff1a;在编译时确定&#xff0c;保存在虚拟机栈的栈帧中的局部变量表中&#xff1b; 运行类型&#xff1a;在运行时确定&#xff0c;由保存在局部变量表中变量指向的堆中对象实例的类型决定&#xff08;存储在对象头中&…...

ffmpeg基础知识入门

文章目录 &#x1f4e6; 1. **容器&#xff08;Container&#xff09;**✅ 定义&#xff1a;✅ 举例&#xff1a;✅ 功能&#xff1a; &#x1f4f6; 2. **媒体流&#xff08;Stream&#xff09;**✅ 定义&#xff1a;✅ 举例&#xff1a;✅ 流和容器关系&#xff1a; &#x1…...