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

计算机四大件笔记

啊~数据库、操作系统、计算机网络、Linux

start

操作系统

并发和并行

并发是同一时间段内发生了多个事情,多任务之间互相抢占资源。

并行是在同一时间点内发生了多个事情,多任务之间不互相抢占资源,只有多CPU的情况下才能并行。

例如:我今天同时学习了数据库、操作系统、计算机网络和Linux这四门课程,学四门课程的任务是并发执行的。我和我的小伙伴两个人(相当于多CPU),今天同时学习了四大件,但是某一时刻我俩同时学习了操作系统这门课程,这一时刻下的学习叫并行。

数据库

MySQL锁

用于解决多个事务在并发情况下的脏读、不可重复读、幻读、丢失更新

查了一下王珊老师的《数据库系统概论》第5版,310页。

脏读:事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时被T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。

丢失更新:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。

不可重复读:事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。

幻读:不可重复读的另外两种现象。1)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录神秘地消失了。2)事务按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。

锁的种类

全局锁:对整个数据库加锁。(全库逻辑备份)(数据增删改查× 建表、修改表结构× 更新类事务的提交×)

Flush tables with read lock(FTWRL)

表级锁

(1)表锁:(每次操作锁住整张表 开销小,加锁快 并发度低)

lock tables ...read/write

元数据锁(MDL)访问表时自动被加上,保持读写的正确性。事务提交后释放,可能会产生死锁问题。

(2)行锁:针对数据表中行记录的锁(每次操作锁住一行数据 开销大,加锁慢 锁冲突低,并发度高)

加锁规则:2原则、2优化、1bug

2原则:1)加锁基本单位next-key lock,前开后闭

             2)查找过程中访问到的对象才会加锁

2优化:1)索引上的等值查询,给唯一索引加锁时,next-key lock退化为行锁

             2)索引上的等值查询,向右遍历时且最后一个值不满足等值条件时,next-key lock退化为间隙锁

1bug:唯一的索引上的范围查询会访问到不满足条件的第一个值为止

锁的划分

1、从数据库角度

共享锁(读锁 S锁)

可被其他用户读取,但不能修改

select user_id from product_comment where user_id = 10 lock in share mode;

排它锁(写锁 X锁)

只允许进行锁定操作的事务使用,其他事务无法查询和修改

对数据库进行更新时(insert、update、delete),自动使用排它锁

select user_id from product_comment where user_id = 10 for update;

all

还可以锁住一张表

lock table product_comment read; //添加共享锁
unlock table; //解锁
lock table product_comment write; //添加排它锁
unlock table; //解锁

意向锁:给更大一级别的空间示意里面是否已经上过锁。

2、程序员角度

乐观锁:对同一数据的并发操作不会总发生,不用每次都上锁。(不采用数据库的锁机制,通过程序上,版本号或时间戳实现)(适合读操作多的场景,优点:程序实现不存在死锁问题)

悲观锁:对数据被其他事务修改保持保守态度。(通过数据库自身锁机制实现 )(适合写操作多的场景,缺点:加锁时间长,并发性不好)

InnoDB使用表锁还是行锁?

绝大多数情况下使用行锁。使用表锁:1)表大,事务需要更新全部或大部分数据2)事务涉及多个表,比较复杂,可能引起死锁,造成大量的事务回滚。

InnoDB事务遵从两级锁协议,需要添加行锁,事务结束时释放。

封锁协议:

一级封锁协议(丢失更新):事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放

二级封锁协议(丢失更新、脏读):在一级封锁协议基础上增加事务T在读取数据R之前必须对其加S锁,读完之后即可释放S锁

三级封锁协议(丢失更新、脏读、不可重复读):在一级封锁协议基础上增加事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放

相关文章:

计算机四大件笔记

啊~数据库、操作系统、计算机网络、Linux start 操作系统 并发和并行 并发是同一时间段内发生了多个事情,多任务之间互相抢占资源。 并行是在同一时间点内发生了多个事情,多任务之间不互相抢占资源,只有多CPU的情况下才能并行。 例如&a…...

【vue上传文件——hash】

vue上传文件 要求:只能上传视频,先计算文件的hash值,hash值一样则不需要上传,不一样在执行上传 分析:因为el-upload没有找到合适的属性,本次用的是原生的input的type属性为file上传 代码: html: 通过点击选取文件按钮调用input上传 js 第一步:点击上传文件先效验是否…...

【OpenCV DNN】Flask 视频监控目标检测教程 01

欢迎关注『OpenCV DNN Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 01 【OpenCV DNN】Flask 视频监控目标检测教程 01 1. 面向Python程序的Web框架2. Flask 框架的安装与使用2.1 Flask 安装2.2 Flask 框架例程2.3 绑定IP和端口2.4 Flask路…...

(转载)从0开始学matlab(第10天)—自顶向下的编程思想

在前面的内容中,我们开发了几个完全运转的 MATLAB 程序。但是这些程序都十分简单,包括一系列的 MATLAB 语句,这些语句按照固定的顺序一个接一个的执行。像这样的程序我们称之顺序结构程序。它首先读取输入,然后运算得到所需结果&a…...

mapreduce技术

要实现操作hbase数据表首先要了解它的原理: 1,Hbase原理篇 HBASE就是基于Hadoop的一个开源项目,也是对Google的BigTable的一种实现。 BigTable最浅显来看就是一张很大的表,表的属性可以根据需求去动态增加,但是又没有表与表之间…...

AI智慧安监视频平台EasyCVR视频出现不能播放的情况排查与解决

EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台兼容性强、拓展度高,可提供视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码、平台级联等功能。 有用户反…...

嵌入式学习之Linux驱动(第九期_设备模型_教程更新了)_基于RK3568

驱动视频全新升级,并持续更新~更全,思路更科学,入门更简单。 迅为基于iTOP-RK3568开发板进行讲解,本次更新内容为第九期,主要讲解设备模型,共计29讲。视频选集 0.课程规划 06:35 1.抛砖引玉-设备模型…...

LeetCode662.设计循环队列||4种方法实现

目录 题目 思路1(链表) 代码 思路2(数组) 代码 题目 题目要求的队列需要实现的功能有 ①Creat---设置队列长度 ②Front---获取队列头 ③Rear---获取队列尾 ④en----插入元素 ⑤de---删除元素 ⑥empty---判空 ⑦full---判满 思路1(链表) 🔍普通队列长度没有限制&…...

人工智能专栏第十二讲——依存解析

依存句法分析是一种自然语言处理技术,其目的是识别句子中单词之间的依赖关系。在自然语言处理中,依存句法分析是一项非常重要的任务,因为它可以帮助我们理解句子的语义结构,从而更好地进行文本分析、信息抽取、语音识别等任务。 …...

nest日志包pino、winston配置-懒人的折腾

nest日志 三种node服务端日志选型 winstonpinolog4js 2023年5月23日 看star数:winston > pino > log4js 使用体验: pino 格式简洁,速度快,支持输入日志到任意数据库,日志暂无自动清理(可能是我…...

一文看懂增值税发票识别OCR:从技术原理到 API Java 示例代码接入

引言 增值税发票识别OCR API是一项重要的技术创新,它在如今信息化的商业环境中发挥着重要作用。通过利用该API,企业和机构能够实现增值税发票的自动化识别和信息提取,从而在财务管理、票据核对、报销流程等方面带来许多好处。 本文将详细介…...

消息队列对比

目录 什么是消息队列 常用的消息队列工具对比 1 、ActiveMQ 2 、RabbitMQ 3、Kafka 4、 RocketMQ 什么是消息队列 消息队列是分布式应用间交换信息的重要组件,消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走。通过消息队列&#xff0…...

Ceph对象存储的基本概念,使用以及优点

Ceph对象存储的基本概念,使用以及优点 Ceph是一种基于分布式架构的对象存储系统,它可以提供高可靠性、高扩展性和高性能的存储服务。这种存储系统可以用于处理大量的数据,例如大型数据库、云存储、视频流、图像数据等。Ceph对象存储系统的基…...

工业互联网UWB定位系统源码,支持自定义开发

工厂人员定位系统,采用UWB定位技术,通过在厂区内部署一定数量的定位基站,以及为人员、车辆、物资佩戴标签卡的形式,实时获取人员精确位置,精度高达10cm。 文末获取联系 工厂人员定位系统可实现物资/车辆实时定位&#…...

VIC模型教程

详情点击链接:RVIC模型融合实践技术应用及未来气候变化模型预测 一:VIC模型的原理与特点 1.VIC模型各模块的主要原理 2.VIC模型的特点及优势 3.VIC模型的适用范围及其限制 4.VIC模型主要输入和输出文件解析案例一 :基于QGIS的VIC模型建模…...

软件著作权容易搞吗?

没有代码、材料,只有一个软件名字就能拿证,你说容易不… 当然这是对我们软著一级代理来说,每年申请下证几千个软著。下面说说下证要点给大家避坑。人群覆盖高新企业、大学生、大学老师、互联网公司。 软件著作权想要轻松下证,必…...

Mac打出特殊字符

optionq:œ ---------optionw:∑ optione: ---------optionr: optiont:† ---------optiony: optionu: ---------optionI:无 optiono: ---------optionP:π o…...

java设计模式之单例设计模式的前世今生

单例设计模式是什么? 单例设计模式是一种创建型模式,它保证一个类只有一个实例,并且该实例提供了全局访问点。这意味着即使在不同的地方,访问这个单例实例的代码得到的都是同一个对象。 单例模式的特点如下: - 保证…...

小航助学2023年3月GESP_C++一级试卷(含题库答题软件账号)

GESP在线模拟训练系统请点击 电子学会-全国青少年编程等级考试真题Scratch一级(2019年3月)在线答题_程序猿下山的博客-CSDN博客_小航答题助手 答案:B 第1题以下不属于计算机输入设备的有( )。 A、键盘B、音箱C、鼠标D、传感器 …...

好程序员:女生学Java好学吗?女生学Java有什么优势?

小源经常会听到女生咨询适不适合学习Java开发的问题,提出这种问题归根结底还是缺乏性别自信,默认女性比男性弱。实际上这个问题并不存在,男女平等才是正确的思维,当然,也为了解开女生们的心结,这里好程序员…...

5个理由告诉你为什么Mermaid Live Editor是图表创作的效率神器

5个理由告诉你为什么Mermaid Live Editor是图表创作的效率神器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...

基于仿真数据增强与PINN的TCAD模型参数自动校准方法

1. 项目概述与核心挑战在功率半导体器件的研发流程里,TCAD仿真扮演着“数字实验室”的角色。工程师们通过它,可以在昂贵的流片之前,预测器件的电学特性,优化结构设计。然而,这个“数字实验室”的预测精度,高…...

告别内存泄漏!Cocos Creator 2.4+ AssetManager资源释放的完整避坑指南

Cocos Creator 2.4 AssetManager资源释放的完整避坑指南在游戏开发中,资源管理一直是影响性能和稳定性的关键因素。随着Cocos Creator 2.4版本推出全新的AssetManager系统,开发者获得了更强大的资源管理能力,但也面临着新的挑战。本文将深入探…...

智能识别告警系统完整方案

智能识别告警系统完整方案 一、整体业务目标 摄像头实时抓拍/上传图片 → 服务器AI推理识别 → 判定是否佩戴厨师帽、是否违规洗澡、人员靠近闯入等行为 → 违规自动告警推送 → 识别效果不佳时走标准化模型/数据集调优流程 二、全流程业务链路 前端采集层:现场摄像…...

Codex适配国产信创环境安装部署与技术适配全解析

随着国家信创产业持续落地推进,党政、金融、能源、工业等关键行业全面开启信息技术软硬件国产化替代工作。基于自主可控、安全可信的核心需求,传统国外架构软硬件体系逐步被国产操作系统、国产芯片硬件替代。Codex作为主流的智能代码辅助、自动化开发工具…...

topcode【随机算法题】【2026.5.24打卡-java版本】

最长有效括号 要点&#xff1a;栈&#xff0c;push下标 class Solution {public int longestValidParentheses(String s) {//栈//放前哨-1Deque<Integer> stack new ArrayDeque<>();stack.push(-1);int ans 0;for(int i 0; i < s.length(); i){char c s.…...

Zilliqa安全机制详解:PoW与分片如何保障区块链安全

Zilliqa安全机制详解&#xff1a;PoW与分片如何保障区块链安全 【免费下载链接】zq1 Zilliqa is the worlds first high-throughput public blockchain platform - designed to scale to thousands ​of transactions per second. 项目地址: https://gitcode.com/gh_mirrors/…...

ARM SME指令集与MOVA指令详解:矩阵运算优化

1. ARM SME指令集概述在当今计算密集型应用如机器学习、信号处理和科学计算的推动下&#xff0c;现代处理器架构不断扩展其并行计算能力。ARMv9架构引入的SME&#xff08;Scalable Matrix Extension&#xff09;正是这种演进的典型代表&#xff0c;它为矩阵和向量操作提供了硬件…...

保姆级教程:用阿里云镜像加速Unity Android依赖下载,搞定MAX+Admob集成

深度优化Unity安卓依赖下载&#xff1a;阿里云镜像加速MAX与AdMob集成实战国内Unity开发者在集成海外广告SDK时&#xff0c;最头疼的莫过于Gradle依赖下载缓慢甚至失败的问题。本文将手把手教你如何通过阿里云镜像仓库彻底解决这一痛点&#xff0c;同时串联Gradle版本管理、mai…...

ARMv9 SME指令集:FDOT浮点点积操作深度解析

1. SME指令集与浮点点积操作概述在当代处理器架构设计中&#xff0c;向量化计算能力已成为衡量芯片性能的关键指标。作为ARMv9架构的重要扩展&#xff0c;SME&#xff08;Scalable Matrix Extension&#xff09;指令集专门针对矩阵运算进行了深度优化&#xff0c;其中多向量浮点…...