文章分类 -  锁机制

摘要:1.分布式锁 现在的系统都是微服务模型,即各种组件单独运行在逻辑独立的机器中,之间通过rpc等方式调用并完成服务。 也因此数据的保存和数据的计算往往不在同一个地方,需要一个分布式框架的“全局锁”。其余所有系统都需要通过它获取锁。 实现分布式锁功能的,可以是redis这样的缓存数据库,也可以是MySQ 阅读全文
posted @ 2022-02-23 16:36 Cheung-10
摘要:乐观锁和悲观锁是进行数据库并发控制的两种思想,并非某种具体的锁机制实现。 乐观锁:适用于读操作多于写操作的场景。响应快。注意MySQL即默认采用乐观锁机制。 乐观锁在争用激烈的场景下,会产生大量空白的“自旋”(即多次操作失败重复尝试),导致性能大幅降低。 悲观锁:适用于写操作多于读操作的场景。 1. 阅读全文
posted @ 2021-10-21 09:43 Cheung-10
摘要:使用由JVM提供的java内置锁的时候,不需要通过Java代码显式地经过对象监视器进行锁的抢占和释放(例如调用某些java并发包或采用synchronized关键字)。 Java对象锁在竞争稍微激烈时会膨胀为重量级锁(基于对象的Mutex Lock),其线程阻塞和唤醒操作会在内核状态和用户态之间切换 阅读全文
posted @ 2021-10-21 09:42 Cheung-10
摘要:显式锁指代码级别的锁,由编码的程序员使用以达到高级程序语言自带锁不能提供的高级功能。如可重入、公平、可中断等。 1.可重入锁和不可重入锁 同一线程是否可以重复占有同一个锁对象。 可重入(递归)锁、不可重入锁。 例如,线程在外层函数抢占了锁A,在进入内层函数时可以再获得锁A对象,即为可重入锁。 2.悲 阅读全文
posted @ 2021-10-21 09:41 Cheung-10