什么是乐观锁和悲观锁?
时间: 2023-09-10 21:10:04 浏览: 115
乐观锁和悲观锁
回答: 乐观锁和悲观锁是两种用于解决并发场景下数据竞争问题的思想。乐观锁非常乐观,认为别人不会同时修改数据,因此在操作数据时不会上锁。它在执行更新操作时,会先判断在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。乐观锁适用于竞争不激烈的情况,因为它不会锁住代码块或数据,其他线程可以同时访问,不会影响并发。悲观锁则比较悲观,认为别人会同时修改数据,所以在操作数据时会直接将数据锁住,直到操作完成后才释放锁。悲观锁适用于竞争激烈的情况,因为它可以阻塞其他线程的修改操作。常见的悲观锁实现方式有行锁、表锁、读锁、写锁等。在Java中,synchronized关键字和JDK提供的Lock实现类都是悲观锁。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [乐观锁和悲观锁](https://blog.csdn.net/reed1991/article/details/56304430)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [乐观锁(CAS)和悲观锁(synchronized)的详细介绍](https://blog.csdn.net/m0_57640408/article/details/127417615)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文