自動解除ロックを実現

863 ワード

ソース記事:http://www.javaspecialists.eu/archive/Issue190.html
実装コード:https://github.com/kabutz/javaspecialists/blob/master/src/main/java/eu/javaspecialists/tjsn/examples/issue190/AutoLockSimple.java

public class AutoLockSimple implements AutoCloseable {
    private final Lock lock;

    public AutoLockSimple(Lock lock) {
        this.lock = lock;
        lock.lock();
    }

    public void close() {
        lock.unlock();
    }
}
使い方:

public class AutoLockSimpleTest {
  private final static ReentrantLock lock = new ReentrantLock();

  public static void main(String[] args) {
    try (new AutoLockSimple(lock)) {
      //      
    }
   
  }

  
}