首页 > 编程语言 >java中锁分类

java中锁分类

时间:2024-02-02 15:46:01浏览次数:21  
标签:加锁 java synchronized 分类 读锁 线程 公平 中锁

1.可重入锁和不可重入锁
可以对临界区资源重复加锁,如synchronized、ReentrantLock
2.公平锁和非公平锁
FIFO,如果对⼀个锁来说,先对锁获取请求的线程⼀定会先被满⾜,后对锁获取请求的线程后被满⾜,那这个锁就是公平的。反之,那就是不公平的。ReentranLock支持公平锁和非公平锁,默认非公平锁。
3.读写锁和排他锁
排他锁:同一时刻只能有一个线程加锁访问,如synchronized和ReentrantLock
读写锁:读锁和写锁分离,读锁可以并发访问,但是只要有一个线程加了写锁,其他线程即不能读也不能写。在读多写少的情况下,提升性能,如ReentrantReadWriteLock

标签:加锁,java,synchronized,分类,读锁,线程,公平,中锁
From: https://www.cnblogs.com/yyz0225/p/18003257

相关文章

  • Java中使用StopWatch实现代码块耗时统计/计时某段代码执行
    场景Java实战-基于JDK的LRU算法实现、优雅的实现代码耗时统计(SpringAOP、AutoCloseable方式):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130970242上面讲了统计方法的耗时,实现和使用面向方法体。如果是在方法中,需要频繁统计一段段的代码块的耗时,可以使用St......
  • Java并发基础:CountDownLatch全面解析!
    内容概要CountDownLatch的优点在于能够简洁高效地协调多个线程的执行顺序,确保一组线程都完成后才触发其他线程的执行,适用于资源加载、任务初始化等场景。它提供了清晰的等待/通知机制,易于理解和使用,是提升多线程程序性能和可靠性的重要工具。核心概念CountDownLatch是java.util......
  • JAVA一维数组介绍和初始化
    一维数组概述一维数组的初始化(声明数组并开辟内存空间)动态初始化1动态初始化2静态初始化一维数组的使用细节......
  • Java将密码加盐加密存储和校验
    注册和登陆的时候,需要加密和校验,以下为加密和解密代码packageorg.ongoal.common.config;importorg.springframework.util.DigestUtils;importorg.springframework.util.StringUtils;importjava.util.UUID;publicclassPasswordUtil{/***加盐算法->格......
  • java开发中业务层和数据层的区别
    其实标准业务层开发很多初学者认为就是调用数据层,怎么说呢?这个理解是没有大问题的,更精准的说法应该是组织业务逻辑功能,并根据业务需求,对数据持久层发起调用。有什么差别呢?目标是为了组织出符合需求的业务逻辑功能,至于调不调用数据层还真不好说,有需求就调用,没有需求就不调用。一个......
  • Java设计模式_1(10/23)
    Java设计模式_1(10/23)目录Java设计模式_1(10/23)单例模式定义饿汉式懒汉式懒汉式(双重检查锁)简单工厂模式定义代码优点缺点工厂模式定义抽象工厂模式装饰器模式适配器模式观察者模式定义外观模式定义状态模式定义策略模式定义代理模式单例模式定义确保类只有一个实例,而且自行......
  • php 获取父级分类id下全部的子级id
    publicstaticfunctiongetCateIds(){//获取商品分类id$where=[['is_disable','=',0],['is_delete','=',0],];$cate=self::field('id,pid,category......
  • Java 中的List
    ListList接口常用方法List集合存储元素特点:有序可重复List既然是Collection接口的子接口,那么肯定List接口有自己的“特色”方法以下列出List特有的常用的方法:voidadd(intindex,Eelement)将指定的元素插入此列表中的指定位置(可选操作)。Objectget(intindex)返回......
  • Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据
    阅读全文:http://tecdat.cn/?p=8522最近我们被客户要求撰写关于神经网络的研究报告,包括一些图形和统计输出。分类问题属于机器学习问题的类别,其中给定一组特征,任务是预测离散值。分类问题的一些常见示例是,预测肿瘤是否为癌症,或者学生是否可能通过考试在本文中,鉴于银行客户的某些......
  • java: Compilation failed: internal java compiler error
    idea启动项目后出现 java:Compilationfailed:internaljavacompilererror错误第一种情况:idea的JDK版本和项目配置的不同。解决方法:查看项目中配置的jdk版本,再查看 idea配置的版本项目配置的:在idea中要查看三个地方的配置 1、File---->Setting------>javacompile......