避免多次锁定尝试java

时间:2014-11-14 03:53:59

标签: java synchronization locking reentrantlock

我有以下方法:

public foo bar(String id) {
    Lock localLock = lockUtil.lock(id);
    try {
        do something;
        return foo;
    } finally {
        lock.unlock();
    }
}

我需要覆盖此方法以接受另一个参数。

public foo bar(String id, Integer index) {
    Lock localLock = lockUtil.lock(id);
    try {
        do something with index;
    } finally {
        lock.unlock();
    }

    return bar(id);
}

我的问题是,如何在不获取锁定两次的情况下实现此目的(如果调用第二种方法)?我不想更改原始方法的签名,因为这意味着要在系统中的10个不同位置进行更改。我很欣赏任何想法。如果需要,我可以就这个问题作出更多澄清。感谢。

0 个答案:

没有答案