新闻详情

新闻详情

首页 / 资讯中心 / 详情

浅谈:乐观锁和悲观锁的使用场景

发布时间:2026/9/9 18:32:47来源:尧图网络
浅谈:乐观锁和悲观锁的使用场景
乐观锁和悲观锁的使用场景悲观锁在所有操作前都上锁乐观锁总是假设最好的情况每次去拿数据的时候都认为别人不会修改所以不会上锁但是在更新的时候会判断一下在此期间别人有没有去更新这个数据可以使用版本号机制和 CAS 算法实现。乐观锁适用于写比较少的情况下多读场景即冲突真的很少发生的时候这样可以省去了锁的开销加大了系统的整个吞吐量。但如果是多写的情况一般会经常产生冲突这就会导致上层应用会不断的进行 retry 这样反倒是降低了性能所以一般多写的场景下用悲观锁就比较合适。死锁的解决方法死锁的产生是在这样一种环境中比如我们有两个进程 AB 他们都需要资源 1 和资源 2 当进程 A 持有资源 1 进线程 B 持有资源 2 的时候他们都需要对方手上的进程而一般操作系统又不允许抢占这个时候就发生了死锁。从这个例子中其实可以总结出死锁的几个必要条件1. 一个资源只能被一个进程所占有不能共享。2. 一个线程请求资源失败时它会等待而不是释放。3. 一个线程在释放资源之前其他进程不能抢夺资源。4. 循环等待从死锁产生的原因未明可以设计一些方法去避免死锁的发生1静态分配资源一开始就把一个进程所需的全部资源都分配给它但这样会降低资源的使用效率。2允许抢占需要设置进程的不同优先级高优先级的进程可以抢占低优先级的进程的资源。3把资源进行编号申请资源必须按照资源的编号顺序来申请。如果死锁已经发生了就需要去解开死锁其本质思想就是分配资源打破循环等待。1可以运行抢占从一个或多个进程中抢出资源来给其他进程。2也可以终止一些进程来达到释放资源的目的。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

贝叶斯方法实战指南:用Python掌握先验概率、后验更新与朴素贝叶斯 2026/9/9 18:30:36

贝叶斯方法实战指南:用Python掌握先验概率、后验更新与朴素贝叶斯

深夜翻完《暗时间》的时候,最让我惦记的其实不是快速阅读技巧,而是第十三讲里关于“贝叶斯方法”的论述。那几页内容表面上是在讲一个概率公式,实际上是在教人怎么和不确定性共处。这几年做后端服务、做数据需求、做架构取舍,我越…

阅读更多 →
企业级物联网平台实战:架构设计、协议选型与踩坑指南 2026/9/9 18:30:36

企业级物联网平台实战:架构设计、协议选型与踩坑指南

1. 项目概述:这到底是个什么级别的"物联网平台" 先说个现实问题:很多人一听到"物联网平台",第一反应是"不就是把设备接上网吗",或者"用MQTT搞个消息转发呗"。但真要落到企业级&#xff0…

阅读更多 →
豆包工作Agent实战:从任务拆解到Agent开发全解析 2026/9/9 18:30:36

豆包工作Agent实战:从任务拆解到Agent开发全解析

豆包工作Agent正式发布,消息一出,周围不少做AI应用和朋友直接开聊。很多人第一反应是“又一个聊天机器人”,但实际用过一轮之后会发现,这次的方向不太一样。它不只是在对话窗口里陪你聊,而是能接活、能拆任务、能调工具…

阅读更多 →
二阶系统模糊PID控制:从原理到仿真实现全解析 2026/9/9 18:30:36

二阶系统模糊PID控制:从原理到仿真实现全解析

1. 项目概述:为什么二阶系统控制值得较真做控制的朋友应该都有体会,二阶系统几乎是所有控制理论的“练兵场”。不管是电机驱动、机械臂关节,还是无人机姿态回路,往深了拆解,底层基本都是二阶模型。这个项目标题里的“二…

阅读更多 →
IDEA社区版实战指南:开源轻量Java开发并不妥协 2026/9/9 18:30:36

IDEA社区版实战指南:开源轻量Java开发并不妥协

不用破解,不用折腾激活码,日常 Java 后端开发完全可以正式拥抱开源版 IDEA。去年我把一台 8G 内存的老笔记本翻出来当备用机,装了 IntelliJ IDEA Community Edition,也就是社区版,实测跑完一个多模块的 Spring Boot 项…

阅读更多 →
如何把地理数据变成 Minecraft 城市:Arnis 世界生成管线技术详解 2026/9/9 18:27:36

如何把地理数据变成 Minecraft 城市:Arnis 世界生成管线技术详解

如何把地理数据变成 Minecraft 城市:Arnis 世界生成管线技术详解 【免费下载链接】arnis Generate any location from the real world in Minecraft with a high level of detail. 项目地址: https://gitcode.com/GitHub_Trending/ar/arnis 在地图上拖一个矩…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞