1.大纲 Lock接口 锁的分类 乐观锁和悲观锁 可重入锁与非可重入锁 公平锁与非公平锁 共享锁与排它锁 自旋锁与阻塞锁 可中断锁 锁优化 一:Lock接口 1.锁 是一种工具,用于控制对共享资源的访问 Lock和synchronized,是常见的锁,都可以达到线程安全的目的 Lock最常见的实现类 ...
分类:
其他好文 时间:
2020-06-01 00:37:47
阅读次数:
79
select ... lock in share mode //共享锁 select ... for update //排他锁 行锁的3种算法: record lock:单个行记录上的锁 gap lock:锁定范围,不锁定记录本身,只在RR里使用 next-key lock:锁定范围,并锁定记录本身 ...
分类:
数据库 时间:
2020-05-27 20:28:41
阅读次数:
93
官方文档:InnoDB Locking and Transaction Model 一、InnoDB存储引擎中的锁 1.共享锁和排它锁(Shared and Exclusive Locks)--行级别锁 InnoDB存储引擎实现了两种标准的行级锁: 共享锁(S):允许持有该锁的事务读取一行记录。 排 ...
分类:
数据库 时间:
2020-05-23 16:24:29
阅读次数:
81
线程池的参数 创建线程的方式 如何暂停线程,有几种方式 线程之间的通讯 线程中什么是原子性、什么是可见性、什么是有序性? Volatile是如何实现可见性的? AQS中共享锁有哪些?独占锁有哪些 synchronized 关键字有几种用法? synchronized 的缺点有哪些? 静态方法和非静态 ...
分类:
编程语言 时间:
2020-05-19 22:56:32
阅读次数:
104
当有多个事务同时更新一条sql时,mysql是如何处理的呢?很显然,使用加锁的方式,一个事务获得了锁,进行操作,其他事务排队一个个等着,等当前这个事务执行完释放锁,其他事务获取锁取到锁的进行操作。这里的锁就是独占锁,也就是X锁。 那么如果有查询这一行数据时,是要加锁吗?不是的,mysql为了提高性能 ...
分类:
数据库 时间:
2020-05-18 01:05:05
阅读次数:
117
在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这篇文章来详细介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁 乐观锁 VS 悲观锁 乐观 ...
分类:
编程语言 时间:
2020-05-08 10:15:54
阅读次数:
79
相关概念 粒度:锁的作用范围 表级 行级 显示锁 隐式锁 表级锁的类型 读锁(read lock) 也称为共享锁(Share Locks,S锁),多个事务可以同时拥有共享锁;但是不能再获取排它锁。 读锁允许其它MySQL客户机对数据同时“读”,但不允许其它MySQL客户机对数据任何“写”。 写锁(w ...
分类:
数据库 时间:
2020-05-07 10:45:10
阅读次数:
81
悲观锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。其与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)并不同,后者可以成为前者的实现手段。 悲观锁 顾名思义,就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处 ...
分类:
其他好文 时间:
2020-05-02 11:45:58
阅读次数:
70
1.什么是锁? 参考博客:https://www.cnblogs.com/hustzzl/p/9343797.html 本次将提及用到的锁机制: 独享锁/共享锁 独享锁是指该锁一次只能被一个线程所持有。 共享锁是指该锁可被多个线程所持有。 对于Java ReentrantLock而言,其是独享锁。但 ...
分类:
编程语言 时间:
2020-04-27 22:50:28
阅读次数:
58
独占锁:独占锁也叫排他锁,是指该锁一次只能被一个线程所持有。如果线程T对数据A加上排他锁后,则其他线程不能再对A加任何类型的锁。获得排它锁的线程即能读数据又能修改数据。 ReentrantLock 和 synchronized 都是独占锁 共享锁:共享锁是指该锁可被多个线程所持有。如果线程T对数据A ...
分类:
其他好文 时间:
2020-04-21 15:27:04
阅读次数:
87