Synchronize

尽量,不要使用String常量加锁
会出现死循环问题

new String
可以使用new String加锁

package com.bjsxt.base.sync006;/*** synchronized代码块对字符串的锁,注意String常量池的缓存功能**/
public class StringLock {public void method() {// new String("字符串常量")synchronized (new String("字符串常量")) {try {while (true) {System.out.println("当前线程 : " + Thread.currentThread().getName() + "开始");Thread.sleep(1000);System.out.println("当前线程 : " + Thread.currentThread().getName() + "结束");}} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {final StringLock stringLock = new StringLock();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {stringLock.method();}}, "t1");Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {stringLock.method();}}, "t2");t1.start();t2.start();}
}

运行

Synchronize对String加锁解决相关推荐

  1. Synchronize对String加锁

    Synchronize 尽量,不要使用String常量加锁 会出现死循环问题 package com.bjsxt.base.sync006;/*** synchronized代码块对字符串的锁,注意S ...

  2. .net framework4.6项目的dll升级后,未找到方法“System.String.GetPathsOfAllDirectoriesAbove”解决

    .net framework4.6项目的dll升级后,未找到方法"System.String.GetPathsOfAllDirectoriesAbove"解决 参考文章: (1). ...

  3. mysql utf8mb4 错_MYSQL保存特殊字符失败,用编码utf8mb4解决错误 Incorrect string value ...解决方法...

    <MYSQL保存特殊字符失败,用编码utf8mb4解决错误 Incorrect string value ...解决方法>要点: 本文介绍了MYSQL保存特殊字符失败,用编码utf8mb4 ...

  4. Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法

    MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...

  5. python TypeError: not all arguments converted during string formatting 解决

    例如: strs=(1,2,3,4) #创建一个集合strs(1, 2, 3,4)>>> print 'strs= %s ' % strsTraceback (most recent ...

  6. linux mysql 1366_Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法

    MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...

  7. c# 调用c库dll ,char*转string的解决办法

    最近由于有个未知的设备需要用到modbus通讯协议,底层需要与PLC通讯,坤跌,PLC啥型号也不清楚封在里面不能拆,前人只留了几个不能运行的QT代码以及不完整的文档.用惯了C#想要重新学QT,真不知猴 ...

  8. PHP7不能用string类名,解决thinkphp php7 Cannot use ‘String’ as class name as it is reserved...

    我有一网站之前用php7运行thinkphp没有什么问题,但是最近发现开启验证码的时候发现有错误 Cannot use 'String' as class name as it is reserved ...

  9. 升级ambari spark至spark3.0.2 bad substitution 和scala.MatchError: x.x (of class java.lang.String)错误解决

    场景描述:由于业务要求想要使用Hudi,而hudi需要spark2.4.5+版本,canal+kafka+sss+hudi 当前版本: hdp3.1.4 hadoop 3.1.0 hive 3.1.0 ...

最新文章

  1. 文巾解题 19. 删除链表的倒数第 N 个结点
  2. MySQL等值传播(low!就是一层窗户纸)
  3. cobertura覆盖率_Cobertura和Maven:集成和单元测试的代码覆盖率
  4. python socket服务器_记-python socket服务器端四部曲
  5. Java企业面试算法新得体会之6大数据和空间限制问题6问
  6. JDK8新特性(二)之接口新增的两个方法
  7. apulSoft apUnmask for mac(音频放大组件)
  8. 在玩图像分类和图像分割?来挑战基于 TensorFlow 的图像注解生成!
  9. Python就业方向都有什么?该如何选择?
  10. python爬取链家_通过Python爬取链家所有房源和小区信息
  11. 计算机科学刘培姣,高中物理课堂融入物理学史体现核心素养的必要性
  12. 美团网手机客户端产品分析
  13. Go语言-switch case | switch中判断多个值、interface conversion: interface {} is float64, not int
  14. Java必学的工具库,让你的代码量减少90%
  15. 字句解 (易經大意 韓長庚)
  16. Fabric v2.3 下载二进制文件和镜像bootstrap.sh脚本解析
  17. ME-27(USAF)
  18. layui表格 列自动适应大小失效
  19. BZOJ2159 Crash 的文明世界 题解
  20. ORA-01659: 无法分配超出 1 的 MINEXTENTS (在表空间 DB_ESTATE 中)

热门文章

  1. C# 中的三个高级参数 params
  2. hihocoder-1615-矩阵游戏II
  3. keepalived 安装和配置
  4. spring mvc+spring + hibernate 整合(二)
  5. 又拍云递归删除目录及文件
  6. ASP.NET MVC Tip #31: 给 Master Pages 和 User Controls 传递数据
  7. 蓝牙BLE ATT剖析(二)-- PDU
  8. AIC-赤池信息准则、BIC-贝叶斯信息准则
  9. 编译原理 之 解释器
  10. C++ Primer 5th笔记(2)chapter 2变量和基本类型