首页 > 其他分享 >synchronized 几种使用方式

synchronized 几种使用方式

时间:2024-09-21 22:45:30浏览次数:1  
标签:内置 synchronized 方式 对象 void 几种 Test public

同步方法

由于Java的每个对象都有一个内置锁,当 synchronized 关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态

public class Test{
    
    /**
    * 这种方式是 对象锁。普通实例方法默认同步监视器就是this,即调用该方法的对象
    */
    public synchronized void methodA(){
        
    }
    
    /**
    * 这中方式是 类锁。synchronized加锁的对象为当前静态方法所在类的Class对象
    */
    public synchronized static void methodB(){
        
    }
}

同步代码块

synchronized 关键字修饰的语句块会自动被加上内置锁,从而实现同步

public class Test{
    
    /**
    * 这种方式是 类锁
    */
    public void methodC(){
        synchronized(Test.class){
            
        }
    }
    
    /**
    * 这种方式是 对象锁。this表示是对象锁
    */
    public void methodD(){
        synchronized(this){
            
        }
    }
    
    /**
    * JVM全局常量锁。需要考虑在其它方法中互斥问题
    */
    public void methodE(String param){
        synchronized(param.intern()){
            
        }
    }
}

 

标签:内置,synchronized,方式,对象,void,几种,Test,public
From: https://www.cnblogs.com/52-IT-y/p/18424642

相关文章

  • k8s集群更新证书(kubeadm方式部署的集群)
    特别注意:证书到期前替换!!!先查看有哪些证书即将过期点击查看代码foritemin`find/etc/kubernetes/pki-maxdepth2-name"*.crt"`;doopensslx509-initem-text-noout|grepNot;echo======================item===============;doneforfin(ls/etc/kubernetes/......
  • C#|.net core 基础 - 深拷贝的五大类N种实现方式
    在实际应用中经常会有这样的需求:获取一个与原对象数据相同但是独立于原对象的精准副本,简单来说就是克隆一份,拷贝一份,复制一份和原对象一样的对象,但是两者各种修改不能互相影响。这一行为也叫深克隆,深拷贝。在C#里拷贝对象是一个看似简单实则相当复杂的事情,因此我不建议自己去做......
  • 【掌桥科研-注册安全分析报告-无验证方式导致安全隐患】
    前言由于网站注册入口容易被黑客攻击,存在如下安全问题:1.暴力破解密码,造成用户信息泄露2.短信盗刷的安全问题,影响业务及导致用户投诉3.带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞所以大部分网站及App都采取图形验证码或滑动验证码等交互解决方案,但在机......
  • kafka 消息位移提交几种方式:消息重复消息、消息丢失的关键
    消费位移Kafka中的位移(offset)是用来记录消息在分区中的位置的标志,简单说就是记录消费者的消费进度,每次消息消费后需要更新消费进度,也就是位移提交由此可见一旦位移提交发生异常,会导致消费进度不正确,就必然发生消息丢失或者重复消费消息位移存储内部主题__consumer_off......
  • ElasticSearch的搜索方式
    目录目录前言数据准备文档搜索一、查询所有文档二、全文检索(1)全文检索(2)自动纠错三、范围搜索四、短语检索五、单词/词组搜索六、复合搜索前言数据准备PUT/students{"mappings":{"properties":{"id":{"type":"integer",......
  • 文字的编码方式————不同UTF之间的区别
    1.编码与字体    对于同一个字符,在文件中保存的是他的编码值,这些文字什么形态,是由字符文件决定的。编码值和字体是两个不一样的东西,例如B的编码值是0x42,但是在屏幕上显示出来时,可以有不同形状,如繁体字与简体中文的区别。        什么叫编码?就是一个字符用什......
  • 谈谈你对Synchronized锁的理解
    一、什么是Synchronized同步锁synchronized是Java中用于实现线程安全的关键字,可以应用于方法或代码块上,用于实现线程安全的同步机制。synchronized控制多个线程对共享资源的访问,确保多个线程在同一时刻,只有一个线程可以执行某个方法或者代码块,保证了代码执行的一致性和原子性......
  • 相亲交友系统 现代爱情的导航仪 在这个数字化的时代,人们的生活方式发生了翻天覆地的
     在这个数字化的时代,人们的生活方式发生了翻天覆地的变化,其中最显著的变化之一便是交友方式的转变。随着社会节奏的加快,越来越多的人选择通过相亲交友系统来寻找人生伴侣。相亲交友系统不仅简化了传统的交友流程,还为单身男女提供了一个全新的平台,在这个平台上,他们可以根据个人偏好......
  • JavaWeb纯小白笔记02:Tomcat的使用:发布项目的三种方式、配置虚拟主机、配置用户名和密
    通过Tomcat进行发布项目的目的是为了提供项目的访问能力:Tomcat作为Web服务器,能够处理HTTP请求和响应,将项目的内容提供给用户进行访问和使用。一.Tomcat发布项目的三种方式:第一种:直接在Tomcat文件夹里的webapps目录创建一个文件夹new放进html文件。f在文件里可以写简单的网......
  • el-cascader 级联选择器 选中范围扩大方式
    遇到的问题:el-cascader打开的选择框只能点击圆点才能被选中,点击文字并不能选中通过组件库配置项popper-class来实现class上面写样式:注意不能是scoped的样式隔离,<stylerel="stylesheet/scss"lang="scss">.cascaderCla{color:red;&.el-radio{......