簡體   English   中英

可重入鎖在Java中自動釋放

[英]Reentrant lock releases automatically in java

有什么方法可以自動釋放重入鎖嗎?不需要在finally塊中解鎖有沒有辦法實現

try{
lock.lock;

}
catch(Exception e){

lock.unlock

}

可以通過注釋來完成,但是也可以使用AutoCloseable

import java.util.concurrent.locks.ReentrantLock;

public class LockTry {

public static void main(String[] args) {

    new LockTry().testWithLock();
}

private void testWithLock() {

    ReentrantLock lock = new ReentrantLock();
    try (CloseableLock clock = new CloseableLock(lock)) {
        System.out.println("run with lock");
    }
}

static class CloseableLock implements AutoCloseable {

    private final ReentrantLock lock;

    CloseableLock(ReentrantLock lock) {
        super();
        this.lock = lock;
        lock.lock();
        System.out.println("locked");
    }

    @Override
    public void close() {
        lock.unlock();
        System.out.println("unlocked");
    }
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM