悲观锁不悲观 乐观锁不乐观
时间: 2024-04-29 16:19:15 浏览: 91
悲观锁和乐观锁是并发控制的两种不同策略。悲观锁认为会发生并发冲突,所以在操作数据之前会先锁定数据,确保其他事务无法修改该数据,以防止数据的不一致性。乐观锁则认为并发冲突的概率较低,所以在操作数据之前不会锁定数据,而是在更新数据时检查是否发生冲突,如果发生冲突则选择重新尝试或者放弃操作。
悲观锁不悲观,是因为它始终假设其他事务会对数据进行修改,所以在每次操作之前都会先锁定数据,这种悲观的观点导致了频繁的加锁操作,降低了并发性能。而乐观锁不悲观,是因为它相信并发冲突的概率较低,所以不会频繁加锁,提高了并发性能。
在实际应用中,选择使用悲观锁还是乐观锁,需要根据具体的业务场景和性能需求来决定。通常情况下,如果并发冲突的概率较低且需要较高的并发性能,可以选择使用乐观锁。而如果并发冲突的概率较高且数据的一致性非常重要,可以选择使用悲观锁。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [thinkPHP框架乐观锁和悲观锁实例分析](https://download.csdn.net/download/weixin_38661236/12933021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [MySQL中的悲观锁与乐观锁](https://download.csdn.net/download/weixin_38503496/12840152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [SpringBoot整合MyBatis实现乐观锁和悲观锁的示例](https://download.csdn.net/download/weixin_38745233/12746530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文