线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分析问题,本文将从死锁检测、索引 ...
分类:
数据库 时间:
2020-07-14 16:49:46
阅读次数:
86
两阶段锁:在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放, 而是要等到事务结束时才释放。 建议:如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并发度的锁尽量往后放。 死锁:当并发系统中不同线程出现循环资源依赖,涉及的线程都在等待别的线程释放资源时,就会 ...
分类:
数据库 时间:
2020-07-14 16:47:27
阅读次数:
73
首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 解铃还须系 ...
分类:
其他好文 时间:
2020-07-12 20:29:53
阅读次数:
65
实时系统调度算法: 实时调度可以分为抢占式和非抢占式的。非抢占式调度用于非周期实时任务通过截止时间来调度,抢占式调度方式用于周期实时任务 最早截止时间(EDF)算法: 1.实时系统中非抢占式调度方式用于非周期实时任务通过截止时间来调度。 例:任务执行 最低松弛度优先(LLF) 2.抢占式调度方式用于 ...
分类:
编程语言 时间:
2020-07-12 10:26:04
阅读次数:
74
多线程简介 多任务 现代操作系统(Windows、Linux、MacOS)都可以执行多任务,多任务就是同时运行多个任务。例如在我们的计算机上,一般都同时跑着多个程序,例如浏览器,视频播放器,音乐播放器,Word办公软件等等,由于CPU执行代码都是一条一条顺序执行的,即时是单核CPU也可以同时执行多个 ...
分类:
编程语言 时间:
2020-07-11 17:39:18
阅读次数:
62
####基础知识点 asp.net生命周期 wcf与webapi的区别 restful api与webservice区别 线程池的理解 数组与链表 Redis存储类型及作用 sql与存储过程优缺点 linq关联查询 Dto对象映射转换 为什么使用ioc ####数据库 死锁 事务隔离 ####asp ...
分类:
Web程序 时间:
2020-07-11 00:07:31
阅读次数:
86
1.环境 MySQL5.7.26,事务隔离级别为RR 2.表结构 + + + + + + + | Field | Type | Null | Key | Default | Extra | + + + + + + + | id | int(11) unsigned | NO | PRI | NULL ...
分类:
数据库 时间:
2020-07-10 19:12:58
阅读次数:
88
两条SQL命中的记录各三条。一看是死锁,第一反应是发生记录资源互斥等待。猜想会不会是这6行记录在执行update的时候SQL1和SQL2修改的记录发生了互斥 菜瓜:所以你最开始想的是更新时两条SQL获取记录的顺序反了,譬如说SQL1先拿35610742,再拿35610744前,SQL2先把35610 ...
分类:
其他好文 时间:
2020-07-10 00:27:44
阅读次数:
67
线程死锁 1.死锁 多个线程因竞争资源而造成的一种僵局(互相等待),无外力作用下程序无法推进的情况称之为死锁 如下图:线程P1拥有锁R1,请求锁R2,而线程P2拥有锁R2请求锁R1,彼此都请求不到资源,结束不了方法无法释放对方需要的资源,因此相互等待无法推进,这就是死锁 2.产生的四个必要条件 1. ...
分类:
编程语言 时间:
2020-07-09 22:07:27
阅读次数:
72
前端备战秋招之操作系统 内容根据春招面经整理,文末有面试遇到的相关问题 笔者文笔有限,如有不足之处还请斧正 文字内容较多,请细细品读,有些点可能有赘述之处,品完此文,面试与此相关的问题,就能得心应手的对付了,还能总结出一套自己的结论 进程 进程是一种抽象的概念,从来没有统一的标准定义 各式各样的定义 ...
分类:
编程语言 时间:
2020-07-09 00:34:26
阅读次数:
83