课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
锁的应用在软件开发项目中是非常常见的一个技术应用,下面我们就通过案例分析来了解一下,软件开发锁的常见类型都有哪些。
锁是计算机协调多个进程或者线程并发访问同一资源的机制,而对于数据库来说数据就是一种需要用户共享的资源,怎么保证数据的并发访问一致性和高效性是数据库需要解决的问题。
按不同分类有以下分类。
从性能上来分,分为乐观锁和悲观锁。
乐观锁比较乐观,乐观锁假设数据一般情况不会造成冲突,多线程同时对同一行数据修改的时候,在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果冲突,则返回给用户异常信息,让用户决定如何去做。
悲观锁比较悲观,多线程同时对同一行数据修改的时候,终只有一个线程修改成功。
从对数据库操作的类型分,分为读锁和写锁(都属于悲观锁)。
读锁(共享锁,S锁(Shared)):针对同一份数据,多个读操作可以同时进行而不会互相影响。
写锁(排它锁,X锁(eXclusive)):当前写操作没有完成前,它会阻断其他写锁和读锁。
从对数据操作的粒度分,分为表锁和行锁。
锁优化建议
尽可能让所有数据检索都通过索引来完成,避免无索引行锁升级为表锁。
尽可能减少检索条件范围,避免间隙锁。
尽量控制事务大小,减少锁定资源量和时间长度,涉及事务加锁的sql尽量放在事务后执行。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。