1.三级封锁协议 一级封锁协议 事务在修改数据时必须先加X锁,在事务结束之后释放X锁。 这样可以解决丢失修改的问题。因为不能有两个事务同时修改同一个数据,所以不会有修改被覆盖的问题。 二级封锁协议 在一级的基础上,要求读取数据A之前必须加上S锁,读取A之后立即释放S锁。 这样可以解决读脏数据的问题。 ...
分类:
数据库 时间:
2020-05-09 09:18:12
阅读次数:
105
来自: https://www.cnblogs.com/rosesmall/archive/2012/04/10/2439915.html 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168. ...
分类:
系统相关 时间:
2020-05-08 10:10:06
阅读次数:
78
{ //sudo rm /var/lib/apt/lists/lock } ...
分类:
其他好文 时间:
2020-05-07 23:17:58
阅读次数:
133
前言 涵盖各大公司会问到的面试点,同时随着版本的升级,可能也会有一些面试题更新,也会同步保持更新,因为篇幅原因(其实是我懒,哈哈)所以列了一部分答案,所有的答案见下文,总共485页合计20个技术点,文末自取pdf. 1、MySQL 中有哪几种锁? 1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大 ...
分类:
数据库 时间:
2020-05-07 15:32:15
阅读次数:
394
Mysql中有哪几种锁? 1.表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2.行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3. 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发 ...
分类:
数据库 时间:
2020-05-06 14:09:11
阅读次数:
103
单例模式:一个类只允许创建一个对象(或实例),那这个类就是一个单例类,这种设计模式就是单例模式。 单例模式所解决的问题: 处理资源的访问冲突:多线程环境下,两个线程共享资源,存在相互覆盖的情况,解决方案:加锁将同一时刻仅允许一个线程调用资源。 表示全局唯一的类。 实现单例模式的要点: 构造函数需要 ...
分类:
其他好文 时间:
2020-05-04 21:32:57
阅读次数:
68
互斥锁 一、 代码展示 ① 没加锁(X) python 两个进程实现从队列中写一个,收一个数据 import threading num = 0 def write1(lock): global num i = 1 while i 使用的是用同一份代码,同样的 变量与资源 。 ② 互斥锁一般用在线程 ...
分类:
编程语言 时间:
2020-05-04 11:51:54
阅读次数:
96
对redisson不熟悉的,请看官网或者github上面的 在Redisson框架中,实现了红锁的机制,Redisson的RedissonRedLock对象实现了Redlock介绍的加锁算法。该对象也可以用来将多个RLock对象关联为一个红锁, 每个RLock对象实例可以来自于不同的Redisson ...
分类:
其他好文 时间:
2020-05-04 01:07:21
阅读次数:
80
由于并发,如果不加以控制,就会出现以下问题:丢失修改,不可重复读,幻读(读脏数据)。 解决方法: 1)一级封锁协议 做法:修改对象之前必须加X锁,直到事务结束才能释放。 好处:可防止丢失修改。 2)二级封锁协议 做法:在一级锁的基础上,读取数据之前必须先对其加 S 锁,读完后即可释放 S 锁。 事务 ...
分类:
其他好文 时间:
2020-05-03 10:22:33
阅读次数:
77
现在记录话单的时候想加一个参数:每秒接口调用的并发量,也就是所谓的QPS(Queries per second)。QPS即每秒请求数,是对一个特定的接口在规定时间内请求流量的衡量标准。那么如何实现QPS的计算呢?我想到的是两种方案: 1、一定时间内(比如一分钟)的请求总量/统计时间段(比如一分钟), ...
分类:
其他好文 时间:
2020-04-30 19:16:04
阅读次数:
270