Skip to content

Latest commit

 

History

History
5 lines (3 loc) · 850 Bytes

锁:互斥锁,乐观锁,悲观锁.md

File metadata and controls

5 lines (3 loc) · 850 Bytes

互斥锁:互斥锁是一种用于线程同步的工具,能够保证同一时刻只有一个线程可以访问共享资源。如果一个线程已经取得了互斥锁,其他尝试获得该锁的线程将会被阻塞,直到第一个线程释放了该锁。

乐观锁:乐观锁假定冲突发生的几率很小,因此在数据操作前并不会加锁,但会在进行更新等操作时检查是否有其他线程对数据进行了修改。如果有,则操作失败;没有,则操作成功。乐观锁一般适用于读多写少的场景。

悲观锁:悲观锁假设冲突发生的几率很大,所以在每次读写数据前都会先加锁。这种方式虽然保证了数据的一致性,但也可能造成资源的浪费。悲观锁主要通过数据库提供的锁机制实现,例如行级锁、表级锁等。