- 博客(3)
- 收藏
- 关注
原创 mysql死锁
https://www.cnblogs.com/tartis/p/9366574.html线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分析问题...
2019-10-16 18:01:35 227
原创 MySQL 中的共享锁、排他锁与意向锁
共享锁(Share Lock)共享锁又称读锁,简称 S 锁:一个事务获取了一个数据行的共享锁,其他事务能获得该行对应的共享锁,但不能获得排他锁,即一个事务在读取一个数据行的时候,其他事务可以并发读取数据,但不能对该数据行进行增删改,直到已释放所有共享锁如果事务 T 对数据 A 加上共享锁后,则其他事务只能对 A 再加共享锁,不能加排他锁。获取共享锁的事务只能读数据,不能修改数据在查询语...
2019-10-16 16:43:49 452
原创 ReentrantLock实现原理
ReentrantLock主要利用CAS+CLH队列来实现。它支持公平锁和非公平锁,两者的实现类似。ReentrantLock的基本实现可以概括为:先通过CAS尝试获取锁。如果此时已经有线程占据了锁,那就加入CLH队列并且被挂起。当锁被释放之后,排在CLH队列队首的线程会被唤醒,然后CAS再次尝试获取锁。在这个时候,如果:非公平锁:如果同时还有另一个线程进来尝试获取,那么有可能会让这...
2019-10-14 10:34:18 284
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人