java - java对象上的同步块不起作用
问题描述
我想同步一个基于String的代码块,这样具有相同String值的不同线程应该被阻塞并一个接一个地执行。但是具有不同String值的不同线程可以同时执行同步块。但是,当我阅读时,我知道 String 上的同步并不是一个好习惯。所以我所做的是,我创建了一个只有一个属性的 Java 类,并使用该对象进行同步,如下所示。但我没有工作。当相同的对象同时出现时,它不会阻止同步块的执行......有人可以为此提出解决方案吗?
SampleDTO sampleDTO = new SampleDTO();
sampleDTO.setClmNumber("someDynamicString");
synchronized (sampleDTO) {
}
我也在 SampleDTO 中实现了 equals 和 hashCode 方法。
解决方案
推荐阅读
- vb.net - vb.net 能否支持 Chromium 引擎?
- imgur - Imgur 访问令牌过期时间这么长(315360000 秒还是毫秒?)
- nginx - nginx:服务器没有处理程序
- vuejs2 - 如何使用代理处理 vue cli 开发服务器中的重定向?
- c# - C#、WinForms 和应用程序图标
- javascript - 错误的 x 轴最小值最大值 Highcharts
- python - 如何使用 matplotlib 中的 mpatches.Patch 将自定义标签添加到条形图中
- google-apps-script - 如何在谷歌应用程序脚本上更改日志消息的语言
- ios - Apple Enterprise 计划,用于为我的客户分发组织的员工应用程序
- json - 使用 curl 时出现 Github API 错误“解析 JSON 的问题”,但与 Postman 一起工作正常