我有一个关于连贯锁定解锁机制的测试样本,如下所示:
public class Test {
public static void main(String[] args) throws InterruptedException, IOException, IllegalArgumentException, IllegalAccessException {
Trt test=new Trt();
test.lock();
Thread a=new Thread(test);
a.start();
}
public static class Trt implements Runnable{
NamedCache cache=null;
@Override
public void run() {
System.out.println(cache.unlock("asd"));
}
public void lock(){
cache= CacheFactory.getCache(Globals.REGISTRY_CACHE_NAME);
System.out.println(cache.lock("asd"));
}
}
}
所以结果是:
true
false
我期待的结果是:
true
true
但情况是,我只有一项“测试”,我都在使用它,而且它只有一个缓存实例。所以缓存的所有者就是那个缓存实例。
为什么它无法关闭它并false
最终返回?
谢谢
阿里