java中锁的概念 简单的理解一下 乐观锁(也是自旋锁)为了不放弃cpu执行事件,循环的使用cas技术(在更改值时先再次获取值看值是否与刚才获取的相同,不相同说明被其他线程改变,则不进行操作,进行while循环,直到相同为止,再对值进行操作)对数据尝试进行更新,直到成功。 悲观锁假定会发生并发冲突, ...
分类:
编程语言 时间:
2020-03-26 01:29:42
阅读次数:
76
SQL优化 JVM优化 hashmap的原理 hashmap碰撞解决办法 mysql数据库隔离级别 mysql乐观锁和悲观锁 线程池的原理 知道哪些设计模式,如何使用 spring的原理 spring IOC和AOP synchronized关键字的作用,使用场景 synchronized和lock ...
分类:
编程语言 时间:
2020-03-25 23:49:41
阅读次数:
147
并发控制 并发情况下,需要做一些控制(一般是加锁),保证共享数据的一致性。 并发操作数据库时,需要给数据库中的数据加锁,确保数据库中数据的一致性。 数据库锁的常见分类 按使用方式来分:悲观锁、乐观锁 按锁级别来分:共享锁、排它锁(主要是这2种,当然还有其他的) 按锁粒度来分:行级锁、表级锁、页级锁 ...
分类:
数据库 时间:
2020-03-25 21:47:21
阅读次数:
82
常见的锁:https://blog.csdn.net/soonfly/article/details/70238902 乐观锁实现:https://blog.csdn.net/lp2388163/article/details/80683383 ...
分类:
数据库 时间:
2020-03-23 20:05:01
阅读次数:
69
164. 数据库的三范式是什么? 第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。 第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。 第三范式:任何非主属性不依赖于其它非主属性。 表类型如果是 MyISAM ,那 id 就是 ...
分类:
数据库 时间:
2020-03-23 00:17:02
阅读次数:
82
悲观锁:指悲观的认为数据存在脏读。超卖的场景。就会把大量访问锁死。悲观锁 分为 文件锁 和 数据表所 数据表锁又分为 表锁和行锁 ,表锁 是锁着这个表 只让只让他访问,其他都访问不了。而行锁 是针对某一条访问数据,进行的锁定。假如 同时有一万个用户来访问这个商品,但是他只有十个商品数量,此时,如果都 ...
分类:
数据库 时间:
2020-03-22 18:12:09
阅读次数:
107
1. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁; 但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新), 如果失败则要重复读-比较-写 ...
分类:
编程语言 时间:
2020-03-21 18:23:07
阅读次数:
63
并发控制 当程序中可能出现并发的情况时,我们就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。 这种手段就叫做并发控制。 并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。 " 没有做 ...
分类:
其他好文 时间:
2020-03-18 09:36:47
阅读次数:
62
事务是有隔离级别 read uncommited (读未提交):不做任何隔离,具有脏读,不可重复对,幻读的问题 read committed (读提交):可以防止脏读,不能防止不可重复读和幻读的问题 repeated read(可重复读):可以防止脏读,不可重复读,不能防止幻读(mysql的默认隔离 ...
分类:
其他好文 时间:
2020-03-18 09:36:28
阅读次数:
65
乐观锁和悲观锁 悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 ...
分类:
编程语言 时间:
2020-03-15 20:43:39
阅读次数:
80