# 一面1. 上来就写:两个有序链表,a中去除b中存在的元素2. 快排,堆排3. java 锁4. java中字符串的连接方法及实现5. 项目设计模式6. 数据库 锁机制7. double表示小数精度问题8. 数据库查找出一个学校每个班级的前十名9. 反射 一面1. 找一个项目,介绍下情况。其中遇到... ...
分类:
编程语言 时间:
2020-04-16 15:09:11
阅读次数:
68
悲观锁(Pessimistic Lock) 当我们要对一个数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发。这种借助数据库锁机制,在修改数据之前先锁定,再修改的方式被称之为悲观并发控制(是因为这是一种对数据的修改抱有悲观态度的并发控制方式。我们 ...
分类:
其他好文 时间:
2020-04-15 00:17:21
阅读次数:
62
1、锁表发生在insert update 、delete 中 2、锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户 3、锁表的原因 第一、 A程序执行了对 tableA 的 insert ,并还未 commite时,B程 ...
分类:
其他好文 时间:
2020-04-03 16:25:39
阅读次数:
71
重量级锁?自旋锁?自适应自旋锁?轻量级锁?偏向锁?悲观锁?乐观锁?执行一个方法太难了,到处都是锁。 重量级锁 如果你学过多线程,那么你肯定知道锁这个东西,至于为什么需要锁,我就不给你普及了,就当做你是已经懂的了。 我们知道,我们要进入一个同步、线程安全的方法时,是需要先获得这个方法的锁的,退出这个方 ...
分类:
其他好文 时间:
2020-03-31 14:05:07
阅读次数:
72
悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有 ...
分类:
数据库 时间:
2020-03-31 12:07:49
阅读次数:
74
锁的分类 读锁和写锁,表锁和行锁 表锁 偏向MyISAM存储引擎,开销小,加锁快,无死锁。发生锁冲突的概率最高,并发度最低。 读锁 会话1对表1加了读锁后,可以查询表1,不能更新表1,也不能查询别的表。与此同时会话2可以查询表1,更新表1会阻塞,等待读锁的释放。 写锁 会话1对表1加了写锁后,可以查 ...
分类:
数据库 时间:
2020-03-29 17:58:44
阅读次数:
95
!!!我的数据库演示版本为5.5,以后会追加最新数据库的演示版本 间隙锁(GAP Lock)时InnoDB在可重复读下的隔离级别下为了解决幻读问题引入的锁机制。幻读存在的问题是因为在新增或者更新时如果进行查询,会出现不一致的现象,这时单纯的使用行锁无法满足我们的需求,我们需要对一定范围的数据加锁,防 ...
分类:
其他好文 时间:
2020-03-28 19:54:04
阅读次数:
553
Go 语言锁机制 Go 语言互斥锁 Go语言的sync包中实现了两种锁 Mutex (互斥锁)和 RWMutex (读写锁),其中 RWMutex 是基于 Mutex 实现的,只读锁的实现使用类似引用计数器的功能。 互斥锁 Mutex 是互斥锁,有 Lock()加锁、Unlock()解锁两个方法,使 ...
分类:
编程语言 时间:
2020-03-27 10:54:44
阅读次数:
78
CAS无锁机制 CAS:Compare and Swap,即比较再交换。 Java内存模型:JMM(Java Memory Model) 在内存模型当中定义了一个主内存,所有声明的实例变量都存在于主内存当中,主内存的数据会共享给所有线程,每一个线程有一块工作内存,工作内存当中主内存数据的副本 当更新 ...
分类:
编程语言 时间:
2020-03-26 19:31:44
阅读次数:
86
1.锁是干什么用的 锁一般来说用作资源控制,限制资源访问,防止在并发环境下造成数据错误2.重入锁 重入锁也叫作递归锁,指的是同一个线程外层函数获取到一把锁后,内层函数同样具有这把锁的控制权限 synchronized和ReentrantLock就是重入锁对应的实现 synchronized重量级的锁 ...
分类:
其他好文 时间:
2020-03-25 19:45:19
阅读次数:
83