锁
文章平均质量分 74
装睡的小5郎
爱生活,爱编程!
展开
-
模板模式实现分布式锁实战
分布式锁相信大家都有用过,常见的分布式锁实现方式例如redis、zookeeper、数据库都可以实现,而我们代码中强引用这些分布式锁的代码,那么当我们以后想替换分布式锁的实现方式时,需要修改代码的成本会很高,于是我们需要借鉴一些设计模式思想来设计,下面我介绍下这三个分布式锁的实现逻辑以及我们项目中是怎么实现。原创 2024-01-05 17:10:10 · 833 阅读 · 0 评论 -
通过数据库唯一索引实现分布式锁
伪代码// 需要加事务@Transactional@Overridepublic <T> T lock(XxxLock lock, ILockCallback<T> callback) { // 数据库加锁 lock(lock); // 加锁逻辑 T result = callback.callback(); //释放锁 try { lockDao.batchDelete(locks); } catch原创 2021-05-27 11:06:14 · 710 阅读 · 0 评论 -
数据库之锁与事务
前言:我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。MySQL中锁的种类M...原创 2018-10-22 11:38:05 · 387 阅读 · 0 评论 -
Java并发编程(原子性、可见性、有序性、synchronized、CAS、volatile、ThreadLocal)笔记
自己网上总结了一些多线程并发的一些文章,如有错误请指教!多线程的三大特性一、原子性原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。线程切换带来的原子性问题Java中的一条语句,在翻译为机器码之后,可能对应的是多个指令。比如:**i++**这个操作至少需要3条指令;把 i 的值从内存=加载到...原创 2019-07-14 18:02:13 · 448 阅读 · 0 评论