数据中的锁有哪些类型
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本篇内容介绍了"数据中的锁有哪些类型"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 悲观锁悲观锁
千家信息网最后更新 2025年01月21日数据中的锁有哪些类型
本篇内容介绍了"数据中的锁有哪些类型"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1. 悲观锁
悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改,所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。悲观锁主要分为共享锁和排他锁1. 共享锁【Shared lock】又称为读锁,简称S锁。顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。2. 排他锁【Exclusive lock】又称为写锁,简称X锁。顾名思义,排他锁就是不能与其他锁并存,如果一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据行读取和修改。例如:java中的synchronized关键字、接口Lock的实现类、mysql的select...for update等
2. 乐观锁
乐观锁是相对悲观锁来说的,它认为数据在一般情况下不会造成冲突,所以在访问记录前不会加排它锁,而是在进行数据提交更新时,才会正式对数据冲突与否进行检测。例如:使用数据版本(Version++)记录机制实现、使用时间戳、java中Atomic的CAS等
3. 公平锁
公平锁表示线程获取锁的顺序是按照线程请求锁的时间早晚来决定的,也就是最早请求锁的线程将最早获取到锁例如:ReentrantLock pairLock = new ReentrantLock(true);
4. 非公平锁
非公平锁表示线程获取锁的顺序不一定是先到先得。例如:ReentrantLock unpairLock = new ReentrantLock(false)。如果构造函数不传递参数,则默认是非公平锁。
5. 独占锁
独占锁是任何时候都只有一个线程能得到锁。例如:Java的ReentrantLock
6. 共享锁
共享锁是可以同时由多个线程持有,它允许一个资源可以被多线程同时进行读操作。例如:ReentrantReadWriteLock的读锁
7. 可重入锁
可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。原理是在锁内部维护一个线程标示,用来标示该锁目前被哪个线程占用,然后关联一个计数器。一开始计数器值为0,说明该锁没有被任何线程占用。当一个线程获取了该锁时,计数器的值会变成1,这时其他线程再来获取该锁时会发现锁的所有者不是自己而被阻塞挂起。例如:public sychrnozied void test() { xxxxxx; test2();}public sychronized void test2() { yyyyy;}
8. 自旋锁
自旋锁是线程获取锁的时候,如果锁被其他线程持有,则当前线程将循环等待,直到获取到锁。
"数据中的锁有哪些类型"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
线程
数据
悲观
事务
时候
类型
乐观
顾名思义
内容
同时
多个
就是
情况
方法
时间
是在
更多
知识
计数器
过程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术专业考哪些证
共筑网络安全守护绿色家园图片
战地3服务器
rna数据库下载
网络安全内幕视频
服务器 台式机的区别
福建定制化国产服务器
微信软件开发者工具有什
微软软件开发工程师的工资
北京数据网络技术标准
nhca网络技术
软件开发框架作用
网络安全宣传周微答题答案
万方数据库期刊查询需要注册吗
csmar数据库是国泰安么
布卡服务器
国土空间规划软件开发
网络安全检测收费标准
开源软件开发高品质的选择
移动软件开发在哪就业
科技发展互联网的英语作文
订票软件开发教程
布卡服务器
重庆新华互联网科技学校
微软网络安全性
小度看网络安全手抄报
股票数据存在什么数据库中
传奇18周年物品数据库
数据库开发可以从事什么工作
简述网络安全的防范措施