当前位置: 首页 > news >正文

Java中的锁

锁的基本概念

高并发场景下,因数据一致性问题,需要通过锁来解决

锁的分类

  • 乐观锁&悲观锁
    1. 乐观锁
      • 本质上不加锁,通过CAS、版本号等方式进行比较和重试,避免了内核态切换的开销,线程不会阻塞
      • Java中的乐观锁有Atomic原子类
      • MySQL实现乐观锁的方式有加版本号
      • 存在ABA的问题,可以通过加版本号解决
    2. 悲观锁
      • 保证同一时间只有一个线程能拿到锁,后续线程会阻塞,开销比较大,通过Synchronized、Lock、实时读等方式实现悲观锁
      • Java中的悲观锁有Synchronized、Lock
      • MySQL中实现悲观锁的方式有实时读、写锁
  • 可重入锁&不可重入锁
    1. 可重入锁指的是对于同一个对象可以有多个线程拿到锁,Java中大部分都是可重入锁
    2. 不可重入锁指的是一个对象只能有一个线程拿到锁,容易造成死锁的问题。
  • 公平锁&非公平锁
    1. 公平锁:线程排队拿锁,性能比较好
    2. 非公平锁:线程可以插队拿锁,开销比较大
  • 读锁&写锁
    1. 读锁:共享锁,多个线程可以同时获取,不会阻塞
    2. 写锁:独占锁,同一时间只能有一个线程持有,后续线程会阻塞
  • 精简版
    • 乐观锁:无锁 CAS,无阻塞,有 ABA;原子类、version 版本;
    • 悲观锁:加锁阻塞,开销大;synchronized、Lock、mysql 行锁;
    • 可重入:同一线程重复拿锁不死锁;
    • 公平锁排队、性能低;非公平可插队、吞吐量高;
    • 读锁共享、写锁独占,读多写少场景用读写锁。
http://www.jsqmd.com/news/1167057/

相关文章:

  • 3分钟永久激活:KMS_VL_ALL_AIO全平台激活解决方案实战指南
  • 西安本地文旅出行服务首选西安中旅碑林分公司
  • GIA钻戒估价标准公开!2026年7月北京持证钻石回收机构全城点位汇总 - 分享测评官
  • 焦圈儿Skill正式上线:让AI写出“人味儿“,一句话就够了
  • 在线培训学习平台哪个好?2026年选购指南
  • Hacker News Digest高级技巧:5种方法优化ChatGPT摘要质量
  • Token调用量两年暴涨千倍:AI产业链基础设施重构深度分析
  • Conv-TasNet源码解析:从数据预处理到模型推理的全流程
  • QMK Toolbox:让机械键盘自定义变得前所未有的简单
  • Midjourney海报实战速成:从零到商用级作品的5个不可跳过的提示词工程技巧
  • 选购干货|瑞德医生皮皮乐有无副作用?温和低敏无刺激 - 思溯深度专栏
  • Zotero PDF Translate插件进阶指南:20+翻译引擎深度集成与学术翻译效能优化
  • Privoxy 4.2.0 广告过滤规则实战:5分钟配置提升 80% 网页加载速度
  • CTF Misc 进阶:Python 自定义加密逆向分析实战——py_hide_flag
  • 终极黑苹果SMBIOS生成指南:3步打造完美硬件信息
  • Commander 与其他 Ruby CLI 库对比:Thor、GLI 和 OptionParser 的优缺点分析
  • 2026年红茶品牌综合排行:国内四大红茶品牌代表,从产区、工艺风味客观实测
  • BetterNCM Installer:用Rust重写网易云音乐插件安装体验
  • 小米运动自动刷步数完整指南:5分钟实现微信运动排名第一
  • 思源宋体CN:7种字重的免费商用字体终极指南
  • 2026英语教学APP怎么选?一线教师亲测这3个坑一定要避开
  • 终极指南:如何使用GoldHEN Cheats Manager轻松管理PS4游戏修改
  • Gemma-4-E4B-it-4bit的量化配置详解:affine模式与group_size=64的技术优势
  • 2026年7月铜陵​市公共卫生许可证检测集中空调通风系统检测水质检测空气质量甲醛检测怎么做?正规CMA机构办理指南 - 创达咨询
  • 炉石传说HsMod插件:55项功能完整指南,免费提升游戏体验
  • 让那个最没用的NPU也忙起来:通过openvino跑大模型
  • dedao-dl与openclaw集成教程:打造个性化知识管理流程
  • GPT vs MBR 分区表实战选择指南:3个关键场景与2TB容量分界线
  • Redis性能优化全攻略:从内存到架构
  • Gopeed下载管理器为何在Windows 7上遇到兼容性挑战?