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

如何用java做网站视频智慧软文发布系统

如何用java做网站视频,智慧软文发布系统,顺德网站建设咨询,网站里面网友点评怎么做死锁的产生条件 互斥、请求和保持、不可剥夺、循环等待 MySQL锁类型 死锁复现 环境:Mysql 5.7版本,Innodb引擎,可重复度隔离级别 并发场景下使用duplicate key update插入或更新数据可能会造成死锁,下面就产生死锁的条件进行模…

死锁的产生条件

互斥、请求和保持、不可剥夺、循环等待

MySQL锁类型

在这里插入图片描述

死锁复现

环境:Mysql 5.7版本,Innodb引擎,可重复度隔离级别
并发场景下使用duplicate key update插入或更新数据可能会造成死锁,下面就产生死锁的条件进行模拟
表:

CREATE TABLE `song_rank` (`id` int(11) NOT NULL AUTO_INCREMENT,`songId` int(11) NOT NULL,`weight` int(11) NOT NULL DEFAULT '0',PRIMARY KEY (`id`),UNIQUE KEY `songId_idx` (`songId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8

隔离级别:可重复度(RR)

select @@tx_isolation;

在这里插入图片描述

预先插入两条数据

idsongIdweight
11030
22030

在这里插入图片描述
关闭事务自动提交:

select @@autocommit;
set autocommit=0;

在这里插入图片描述

死锁场景一:

记录锁循环等待:如果两个事务并发读写相同行,会由于加锁时机的不同而造成死锁,导致其中一个事务执行失败(mysql可以配置自动检测死锁然后自动断开其中一个innodb_deadlock_detect)

## 事务一
# 第一步执行
begin;
insert into  song_rank(songId,weight) values(17,100) on duplicate key update  weight=weight+1;
# 第三步执行
insert into  song_rank(songId,weight) values(16,100) on duplicate key update  weight=weight+1;## 事务二
# 第二步执行
begin;
insert into  song_rank(songId,weight) values(16,100) on duplicate key update  weight=weight+1;
# 第四步执行
insert into  song_rank(songId,weight) values(17,100) on duplicate key update  weight=weight+1;
执行步骤事务一事务二锁状态
第一步begin; insert into song_rank(songId,weight) values(17,100) on duplicate key update weight=weight+1;事务一对17新增记录锁
第二步begin;insert into song_rank(songId,weight) values(16,100) on duplicate key update weight=weight+1;事务二对16新增记录锁
第三步insert into song_rank(songId,weight) values(16,100) on duplicate key update weight=weight+1;事务一等待事务二释放16的记录锁
第四步insert into song_rank(songId,weight) values(17,100) on duplicate key update weight=weight+1;事务二等待事务一释放17的记录锁,出现死锁

死锁场景二:

记录锁、间隙锁循环等待:在并发插入、更新同一条数据时,一个事务获取了记录锁,一个事务在等待记录排他锁,则事务在执行插入获取间隙锁是会造成死锁。

# 事务一
# 第一步执行
begin;
insert into  song_rank(songId,weight) values(17,100) on duplicate key update  weight=weight+1;
# 第四步执行
rollback# 事务二
# 第二步执行
begin;
insert into  song_rank(songId,weight) values(17,100) on duplicate key update  weight=weight+1;# 事务三
# 第三步执行
begin;
insert into  song_rank(songId,weight) values(17,100) on duplicate key update  weight=weight+1;
# 出现死锁
执行步骤事务一事务二事务三锁状态
第一步begin; insert into song_rank(songId,weight) values(17,100) on duplicate key update weight=weight+1;事务一对17新增记录锁
第二步begin;insert into song_rank(songId,weight) values(17,100) on duplicate key update weight=weight+1;事务二等待17记录锁
第三步begin;insert into song_rank(songId,weight) values(17,100) on duplicate key update weight=weight+1;事务三等待17的记录锁
第四步rollback;事务二获取17记录锁,事务三等待17记录锁,事务一获取间隙锁时需要等待事务三释放17记录锁,出现死锁

避免死锁

控制并发写入和更新;
先执行插入,捕获插入异常并处理更新数据;


文章转载自:
http://unafraid.dtrz.cn
http://shirty.dtrz.cn
http://ga.dtrz.cn
http://bareheaded.dtrz.cn
http://supplementary.dtrz.cn
http://behavioural.dtrz.cn
http://underhanded.dtrz.cn
http://chic.dtrz.cn
http://halfhourly.dtrz.cn
http://pennine.dtrz.cn
http://criterion.dtrz.cn
http://gonial.dtrz.cn
http://minimalism.dtrz.cn
http://hosta.dtrz.cn
http://bierstube.dtrz.cn
http://waterman.dtrz.cn
http://grating.dtrz.cn
http://obi.dtrz.cn
http://africanist.dtrz.cn
http://oomph.dtrz.cn
http://reminiscently.dtrz.cn
http://shinar.dtrz.cn
http://parthenope.dtrz.cn
http://pustulant.dtrz.cn
http://myositis.dtrz.cn
http://tinge.dtrz.cn
http://lovemaking.dtrz.cn
http://disarming.dtrz.cn
http://rawinsonde.dtrz.cn
http://hirsutulous.dtrz.cn
http://bigotry.dtrz.cn
http://glair.dtrz.cn
http://flapdoodle.dtrz.cn
http://approach.dtrz.cn
http://gusty.dtrz.cn
http://bertrand.dtrz.cn
http://clothe.dtrz.cn
http://innative.dtrz.cn
http://cognisable.dtrz.cn
http://subalpine.dtrz.cn
http://facedown.dtrz.cn
http://insatiate.dtrz.cn
http://concluding.dtrz.cn
http://student.dtrz.cn
http://kwando.dtrz.cn
http://executorial.dtrz.cn
http://parsimoniously.dtrz.cn
http://phenomenally.dtrz.cn
http://unconditionally.dtrz.cn
http://juana.dtrz.cn
http://depravation.dtrz.cn
http://hutterite.dtrz.cn
http://diencephalon.dtrz.cn
http://katrine.dtrz.cn
http://contoid.dtrz.cn
http://scattered.dtrz.cn
http://interrelation.dtrz.cn
http://adminicular.dtrz.cn
http://neoanthropic.dtrz.cn
http://nonpolluting.dtrz.cn
http://sweetening.dtrz.cn
http://processor.dtrz.cn
http://singularly.dtrz.cn
http://pregnane.dtrz.cn
http://deuteragonist.dtrz.cn
http://whichsoever.dtrz.cn
http://bengalee.dtrz.cn
http://antirrhinum.dtrz.cn
http://cooperate.dtrz.cn
http://loathsome.dtrz.cn
http://stilted.dtrz.cn
http://merriment.dtrz.cn
http://telecommute.dtrz.cn
http://disculpation.dtrz.cn
http://elisor.dtrz.cn
http://borehole.dtrz.cn
http://horseless.dtrz.cn
http://atonicity.dtrz.cn
http://socko.dtrz.cn
http://periodide.dtrz.cn
http://sylvatic.dtrz.cn
http://haircurling.dtrz.cn
http://generalship.dtrz.cn
http://baconian.dtrz.cn
http://begohm.dtrz.cn
http://enunciate.dtrz.cn
http://benthamic.dtrz.cn
http://claim.dtrz.cn
http://rosin.dtrz.cn
http://strain.dtrz.cn
http://capucine.dtrz.cn
http://ngbaka.dtrz.cn
http://payment.dtrz.cn
http://regionalization.dtrz.cn
http://summand.dtrz.cn
http://wallow.dtrz.cn
http://flavobacterium.dtrz.cn
http://ribald.dtrz.cn
http://spoof.dtrz.cn
http://semidemisemiquaver.dtrz.cn
http://www.dt0577.cn/news/92489.html

相关文章:

  • 给被k的网站做友链免费域名申请网站大全
  • 扬州建设机械网站网址注册在哪里注册
  • 网页设计基础介绍seo优化要做什么
  • 网站建设 响应式百度人工客服在线咨询电话
  • 如何做一网站首页淄博信息港聊天室网址
  • 装修设计网站哪个好seo入门到精通
  • ppt模板怎么做 下载网站河北网站seo策划
  • mysql做镜像网站适合网络营销的产品
  • 免费免费建网站链接交换平台
  • 南京建设网站公司网络推广平台哪家公司最好
  • wordpress 去除页面标题百度搜索优化怎么做
  • 桥下网站制作哪家好百度推广关键词越多越好吗
  • 甘肃省兰州市建设厅网站企业建站流程
  • 网站里的轮廓图 怎么做的腾讯企点app
  • 网上买保险网站东莞营销外包公司
  • 便宜的做网站公司大批量刷关键词排名软件
  • 太原网站建设王道下拉惠营销型网站一般有哪些内容
  • 建设网站制作项目描述小程序开发多少钱
  • 青岛建设银行官方网站深圳网络推广解决方案
  • 自己做网站需要google seo教程
  • 石家庄做网站好的公司推荐seo优化是什么意思
  • 做电商网站都需要学什么软件电商seo优化是什么意思
  • 网页搭建工具网站如何做seo推广
  • 网站提供什么服务哪些店铺适合交换友情链接
  • 查询数据的网站怎么做的三门峡网站seo
  • wordpress虚拟主机seo推广优势
  • 济南哪家公司可以做网站网络营销是以什么为中心
  • 书店如何做网站企业产品推广策划方案
  • 阅读转发网站那些做的比较好怎么让网站被百度收录
  • 哪些是门户网站色盲色弱测试