乐观锁和悲观锁 synchronized是乐观锁还是悲观锁

2025-01-0502:49:53综合资讯0

对于“乐观锁”(Optimistic Locking)的机制,它主要是遵循一种积极乐观的思路进行数据处理。简而言之,它倾向于先进行业务操作,仅在最后一步更新数据时才实施锁定。这种策略“乐观”地认为加锁操作会成功,因此无需在数据处理的初期就立即锁定资源。

相较之下,“悲观锁”(Pessimistic Locking)则体现出一种更为保守的态度。在数据处理的全过程中,它倾向于将所需资源始终保持锁定状态。这一机制的实现通常依赖于数据库所提供的锁机制。由于悲观锁能确保数据访问的排他性,因此只有数据库层所提供的锁机制才能真正保证数据在各种系统间的完整性。

关于乐观锁的运作方式:

  • CAS(Compare-And-Swap)操作方式:这是一种比较并交换的操作机制,涉及三个操作数:内存中的当前值、预期值和新值。在需要更新数据时,系统会先检查内存中的值是否与之前读取到的预期值相符。若两者相等,则用新值替换原值;若不相等,则重试更新过程,通常通过自旋操作不断尝试直至成功。