首页 > 其他分享 >锁的分类

锁的分类

时间:2024-09-07 17:14:02浏览次数:8  
标签:重入 多个 分类 获取 线程 公平 比方说

锁的分类:

悲观锁和乐观锁:乐观锁和悲观锁是并发控制的一种机制,用于多线程或多进程环境下对共享资源的访问管理,以防止数据不一致或竞态条件。它们的主要区别在于对待冲突的策略。

悲观锁是一种对资源持有较悲观态度的锁定方式。它假设数据在并发访问时极有可能发生冲突,因此每次访问数据时都会先加锁,以确保其他线程不能访问此数据直到锁被释放。

乐观锁则持相对乐观的态度,假设并发操作冲突的可能性较小,因此不会主动加锁,而是进行数据版本检查来决定是否提交操作。适用于读多写少的场景。

⾮⾃旋锁和自旋锁:主要是从未获取到锁是否要阻塞。

⾮⾃旋锁:未获取到锁不需要阻塞。比方说使用redis上锁的时候,可以加个超时时间。

自旋锁:未获取到锁需要阻塞,一直等到获取到锁。比方说CAS.

公平锁 和⾮公平锁:竞争锁的时候是否需要排队。

公平锁:竞争锁的时候是需要排队。

非公平锁:竞争锁的时候不需要排队。

比方说我们的ReentrantLock,默认是非公平锁,可以在构造方法中传入true,变成公平锁。

可重⼊锁 和不可重⼊锁:一个线程多个阶段是否能获取同一把锁。

可重入锁:一个线程多个阶段能够获取同一把锁。

不可重入锁:一个线程多个阶段不能够获取同一把锁。

比方说:ReentrantLock,ReentrantReadWriteLock底层的重入机制,每次重入都会给aqs的state变量加1记录重入次数。

共享锁和排他锁:多个线程是否共用一把锁。

共享锁:多个线程可以共用一把锁。

排他锁:多个线程不可以共用一把锁。

比方说读锁就是一种共享锁,写锁就是一种排他锁。

标签:重入,多个,分类,获取,线程,公平,比方说
From: https://www.cnblogs.com/dongyaotou/p/18401917

相关文章

  • 基于基尼指数构建分类决策树[算法+示例]
    0前言本文主要讲述使用基尼指数构建二叉决策树的算法,并给出例题一步步解析,帮助读者理解。本文所使用的数据集:贷款.CSV。读者需要具备的知识:基尼指数计算。1基于基尼指数的分类树构建算法选择最优特征进行分裂:对于决策树的每个节点,遍历数据集中的所有特征。对于每个特......
  • Python贝叶斯卷积神经网络BCNN分类胸部X光图像数据集实例
    分析师:YuanchunNiu在人工智能的诸多领域中,分类技术扮演着核心角色,其应用广泛而深远。无论是在金融风险评估、医疗诊断、安全监控还是日常的交互式服务中,有效的分类算法都是实现智能决策的关键。随着大数据时代的到来,分类算法面临着前所未有的挑战和机遇。一方面,海量的数据为算法提......
  • Python用CNN+LSTM+Attention对新闻文本分类、锂离子电池健康、寿命数据预测
     分析师:WeiqiaoJue在当今的数字化时代,数据的爆炸式增长既带来了机遇,也带来了挑战。如何从海量的数据中高效地提取有价值的信息,并进行准确的分类和预测,成为了众多领域亟待解决的关键问题。本研究通过CNN+LSTM+Attention模型提高新闻文本分类的精确性的案例,结合Attention+CNN+BiLST......
  • 【保姆级教程】使用 PyTorch 自定义卷积神经网络(CNN) 实现图像分类、训练验证、预测全
    《博主简介》小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。......
  • 基于贝叶斯算法优化回声状态网络(BO-ESN/Bayes-ESN)的数据多特征分类预测 Matlab代码+
    ......
  • 进程间通信(IPC):概念、分类与信号机制(2)
    文章目录进程间通信(IPC):概念、分类与信号机制引言IPC的分类信号机制信号周期信号的产生信号的发送信号的接收信号处理示例IPC的其他方法管道通信消息队列共享内存套接字通信服务器端代码客户端代码优点与缺点优点缺点结论进程间通信(IPC):概念、分类与信号机制引言......
  • Python贝叶斯卷积神经网络BCNN分类胸部X光图像数据集实例
    全文链接:https://tecdat.cn/?p=37604原文出处:拓端数据部落公众号分析师:YuanchunNiu在人工智能的诸多领域中,分类技术扮演着核心角色,其应用广泛而深远。无论是在金融风险评估、医疗诊断、安全监控还是日常的交互式服务中,有效的分类算法都是实现智能决策的关键。随着大数据时代的......
  • JAVA三级分类的使用
    1.0准备1.创建好一个java文件2.导入所需要的包(至少29个)3.创建resources包并标记为资源根目录,配置好框架配置信息web.xml4.创建pojo包,编写实体类pojo 5.创建mapper包,编写接口mapper 6.编写实现类mapper.xml  7.创建service包,编写service以及impl8.编写测试......
  • 6、显卡品牌分类介绍:微星 - 计算机硬件品牌系列文章
    微星科技是一家知名的电脑硬件制造商,‌特别是在显卡和主板领域有着显著的影响力。‌该公司成立于1986年8月,‌总部位于上海市延安西路889号太平洋中心三楼。‌微星科技早期以主板、‌显卡为主要产品,‌与技嘉、‌华硕等齐名,‌为主板三大厂之一。‌近年来,‌微星向电竞个人电脑市......
  • 【事件IO分类】什么是慢IO事件,什么是快IO事件?
    在大家耳熟能详的事件驱动框架,比如libeventlibevlibuv等,其中都会对IO进行分类,从而更高效的进行处理,而不阻塞整体运行流程。慢IO,顾名思义。就是IO会长时间阻塞,比如:DNS解析。DNS(域名系统)解析通常被认为是一种慢的I/O操作,原因主要有以下几点:###1.网络延迟DNS解析涉及......