synchronized - 不要锁常量

It is not recommended to use objects which are pooled and reused, if you do so there is a chance of getting into deadlock condition down the line.

不要尝试使用池化或者重用的对象,有可能会造成死锁或者竞态条件

有些时候使用 synchronized 时会这样写, 这样的不建议的:


String rs1 = "lock";
String rs2 = "lock";public void hi(){synchronized(rs1){//to do sth...}
}public void hi2(){synchronized(rs2){//to do sth...}
}或者public void hi3(){synchronized(rs1.intern()){//to do sth...}
}

推荐做法

使用 private final 对象, 如


private final lock = new Object('lock');public void hi4(){synchronized(lock){//to do sth...}
}

synchronized - 不要锁常量相关推荐

  1. synchronized与锁升级

    作者:bravo1988 链接:https://www.zhihu.com/question/317687988/answer/1715863550 来源:知乎 著作权归作者所有.商业转载请联系作者获 ...

  2. java synchronized 类锁_【java】synchronized对象锁和类锁简介【图文教程】

    平凡也就两个字: 懒和惰; 成功也就两个字: 苦和勤; 优秀也就两个字: 你和我. 跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美! 关注微信 ...

  3. Synchronized Lock 锁 同步

    如果锁的是类对象的话,尽管new多个实例对象,但他们仍然是属于同一个类依然会被锁住,即线程之间保证同步关系. 字符串作为锁对象的参考 一.synchronized的性质 1.可重入性 官方解释:指的是 ...

  4. 12.synchronized的锁重入、锁消除、锁升级原理?无锁、偏向锁、轻量级锁、自旋、重量级锁

    小陈:呼叫老王...... 老王:来了来了,小陈你准备好了吗?今天我们来讲synchronized的锁重入.锁优化.和锁升级的原理 小陈:早就准备好了,我现在都等不及了 老王:那就好,那我们废话不多说 ...

  5. Java synchronized偏向锁、轻量级锁、重量级锁

    简介 synchronized锁共有偏向锁.轻量级锁.重量级锁三种类型,而这三种类型的加锁方式都是相同的,写代码时不用考虑加哪种锁.使用锁时对象首先会变为偏向锁状态,当有其它线程获取锁时会升级为轻量级 ...

  6. 第十二章:synchronized与锁升级

    相关面试题 锁优化背景 Synchronized 锁性能变化 jdk5 以前 复习:为什么任意一个对象都能成为锁? jdk6 之后 synchronized的种类以及锁升级流程 锁升级流程 无锁 偏向 ...

  7. synchronized 重量级锁分析

    synchronized 重量级锁分析 1. 背景 在JDK1.6以前,synchronized 的工作方式都是这种重量级的锁.它的实现原理就是利用 kernel 中的互斥量,mutex.主要是内核中 ...

  8. Java Synchronized 重量级锁原理深入剖析上(互斥篇)

    前言 线程并发系列文章: Java 线程基础 Java 线程状态 Java "优雅"地中断线程-实践篇 Java "优雅"地中断线程-原理篇 真正理解Java ...

  9. 线程同步机制synchronized中锁的判断以及锁的作用范围

    当我们使用多个线程访问同一资源(可以是同一个变量.同一个文件.同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题,但是如果多个线程中对资源有读和写的操作,就容易出现线程安全问题. 要 ...

最新文章

  1. Plugin Error
  2. android帧动画实现方法之一
  3. Mysql一些重要配置参数的学习与整理(一)
  4. 利用霍夫梯度法进行圆检测的原理概要及OpenCV代码实现
  5. 搜索,然后学习:两阶段的无监督文本生成
  6. BUG总结——记一次sql查询未按照想要的次序返回
  7. 音视频技术开发——还有什么不能讲的?
  8. 【SPOJ - DQUERY】D-query(权值树状数组 或 主席树 或 莫队)
  9. 张正友标定Opencv实现、标定流程以及图像坐标转为世界坐标
  10. java 筛选地区语句_Java选择语句
  11. apscheduler Trigger
  12. python面试问题_Python面试问题
  13. 三端食堂售饭管理系统
  14. ECShop 批量打印快递单
  15. 关于axure rp 是做什么用的
  16. 6410启动问题排除
  17. nginx 代理 负载均衡 网站转接的用法
  18. 数学系列:数学在计算机图形学中的应用
  19. Creo 9.0 基准特征:基准坐标系
  20. 软件测试技术之APP专项测试方法汇总

热门文章

  1. 菜鸟入门13,认识两个新朋友——PWM和DAC
  2. Java:学校比赛现场有10个评委,要求从键盘输入10个分数作为评委对一名选手的打分,评分规则为去掉一个最高分,去掉一个最低分,求该名选手平均分,打印到控制台。
  3. excel打开空白灰色怎么办呢
  4. 那些年错过的蓝桥杯(三)
  5. CentOS7清除wnTKYg木马
  6. 配置编辑器工具 (SvcConfigEditor.exe)位置和简介
  7. 远程连接管理 k8s 集群
  8. linux common comand
  9. RxAndroid dispose实现原理
  10. C++类与对象:程序片段编程题/汽车类的定义,拷贝构造函数,析构函数的定义