建议先关注、点赞、收藏后再阅读。
一种常用的并发控制机制:乐观锁
乐观锁是一种常用的并发控制机制,适用于高并发读取、少量写入的场景。它的主要思想是,每次读取数据时都假设没有其他线程对数据进行修改,只有在更新数据时才会根据实际情况进行并发冲突的检测和处理。
使用方法:
- 在数据表中增加一个版本号(version)字段。
- 当读取数据时,将该版本号一同读取出来。
- 在更新数据时,首先判断当前的版本号与之前读取到的版本号是否一致。
- 如果一致,则表示期间没有其他线程对该数据进行修改,可以进行更新操作并将版本号加一。
- 如果不一致,则表示期间有其他线程对该数据进行了修改,无法进行更新操作,需要根据实际业务情况进行处理,例如重新尝试更新或者提示用户数据已被修改。
适用场景:
乐观锁适用于读多写少的场景,可以有效提高并发读取并减少对数据的独占性,常用于以下情况:
- 多线程并发读取同一数据,但写入操作相对较少的场景。
- 数据冲突的产生概率较低,即并发更新冲突的概率较小。
优点:
- 不需要显式地对数据进行加锁操作,减少了资源竞争的情况,提高了并发读取的性能。
- 适用于高并发读取、少量写入的场景,能够在保证数据一致性的前提下提高系统的并发处理能力。
缺点:
- 在并发冲突的情况下,需要重新尝试更新数据或者进行其他处理,增加了编码复杂度和运行时开销。
- 适用场景有限,不适合并发写入较多的场景,因为并发冲突较多时,重新尝试更新的次数可能会增加,导致性能下降。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦