gpt4 book ai didi

java - 从字符串创建对象并在同步块(synchronized block)中用作监视器

转载 作者:行者123 更新时间:2023-12-03 12:45:45 25 4
gpt4 key购买 nike

<分区>

我在一些类上使用注释,通过反射我得到了一些注释字符串,这对每个类都是唯一的。

我正在考虑使用该字符串来同步代码块,但我只想在注释字符串值相同时阻止代码访问,如果字符串不相同,则另一个线程可以进入执行其任务。我知道不能直接用string,int也没有monitor所以不能直接用hashcode。当我使用 jMeter 加载测试这段代码时,这种方式会产生任何问题吗?

public class LockObject {

private String lockString;

public LockObject(String lockString) {
this.lockString = lockString;
}

public int hashCode() {
returns hashcode for string;
}

@Override
public boolean equals(Object obj) {
}
}

public class TestClass {

public void someMethod() {
String annotationString = "fetchedByAnnotation that i use on some class by reflection";
//what i want if string is same then second thread won't enter this block
synchronized (new LockObject(annotationString)) {
//some task based on that string
}
}
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com