首页 > 解决方案 > java对象上的同步块不起作用

问题描述

我想同步一个基于String的代码块,这样具有相同String值的不同线程应该被阻塞并一个接一个地执行。但是具有不同String值的不同线程可以同时执行同步块。但是,当我阅读时,我知道 String 上的同步并不是一个好习惯。所以我所做的是,我创建了一个只有一个属性的 Java 类,并使用该对象进行同步,如下所示。但我没有工作。当相同的对象同时出现时,它不会阻止同步块的执行......有人可以为此提出解决方案吗?

SampleDTO sampleDTO = new SampleDTO();
sampleDTO.setClmNumber("someDynamicString");
synchronized (sampleDTO) {

}

我也在 SampleDTO 中实现了 equals 和 hashCode 方法。

标签: javamultithreadingsynchronization

解决方案


推荐阅读