悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每 次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传 统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写 锁等,都是在做操作之前先上锁。再比如 Java 里面的同步原语 synchroniz ...
分类:
其他好文 时间:
2020-04-25 00:42:12
阅读次数:
181
谈谈你对锁的理解? 在并发编程中有两个重要的概念:线程和锁 多线程是一把双刃剑,它在提高程序性能的同时,也带来了编码的复杂性。 锁的出现就是为了保障多线程在同时操作一组资源时的数据一致性,当我们给资源加上锁之后,只有拥有此锁的线程才能操作此资源,而其他线程只能排队等待使用此锁。 锁的分类 乐观锁和悲 ...
分类:
其他好文 时间:
2020-04-24 19:50:11
阅读次数:
58
以前对Mysql的锁的认识,只了解表锁和行锁,其实Mysql的锁的种类还是不少的,有全局锁,表级锁,行级锁,还有元数据锁,间隙锁,临界锁。 一 全局锁 Mysql的全局锁是对整个实例加锁,加锁之后,数据库整体处于只读状态,数据上不能执行增删改,元数据上不能执行新建表,更新表;不能提交事务。 命令: ...
分类:
数据库 时间:
2020-04-21 22:34:01
阅读次数:
90
乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用。1.乐观锁顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类 ...
分类:
其他好文 时间:
2020-04-21 15:32:09
阅读次数:
64
一、Linux下存在进程和线程两种操作系统的基本概念。 Linux系统特性: 1. 以多进程形式,允许同时多个任务 2. 以线程形式,允许单个任务分成不同的部分去运行 3. 锁机制,防止线程资源抢夺。 二、Linux管理进程的命令 1. ps命令 ps命令用于报告当前系统的进程状态。可以搭配kill ...
分类:
系统相关 时间:
2020-04-20 23:45:59
阅读次数:
90
Mysql中有哪几种锁? 1.表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2.行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3.页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度 ...
分类:
数据库 时间:
2020-04-20 14:00:36
阅读次数:
81
1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看 ...
分类:
编程语言 时间:
2020-04-18 10:06:15
阅读次数:
69
MySQL常用引擎 MyISAM:MySQL 5.5之前的默认引擎,不支持行锁、事务、外键,非聚簇索引。 InnoDB:MySQL 5.5之后的默认引擎,支持行锁、事务、外键,聚簇索引。 一般来说,MyISAM适合读密集型的表,InnoDB适合写密集型的表。 字符集与校对规则 字符集(charset ...
分类:
数据库 时间:
2020-04-07 00:08:42
阅读次数:
95
锁 行锁 record lock 间隙锁 gap lock 区间锁 next key lock 作用 防止幻读 什么时候会取得gap lock或者next key lock 隔离级别有关,只在REPEATABLE READ或以上的隔离级别下的特定操作才会取得gap lock或nextkey lock ...
分类:
数据库 时间:
2020-04-04 22:20:47
阅读次数:
178
1、锁表发生在insert update 、delete 中 2、锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户 3、锁表的原因 第一、 A程序执行了对 tableA 的 insert ,并还未 commite时,B程 ...
分类:
其他好文 时间:
2020-04-03 16:25:39
阅读次数:
71