Class CloseableReentrantReadWriteLock

java.lang.Object
java.util.concurrent.locks.ReentrantReadWriteLock
host.anzo.commons.concurrent.CloseableReentrantReadWriteLock
All Implemented Interfaces:
Serializable, ReadWriteLock

public class CloseableReentrantReadWriteLock extends ReentrantReadWriteLock
Extension of ReentrantReadWriteLock providing convenience methods for try-with-resources lock management.

Wraps readLock and writeLock with AutoCloseable implementations, enabling automatic lock release when exiting try-with-resources blocks.

Usage examples with var and unnamed variables in try-with-resources:


 // Create lock instance
 var lock = new CloseableReentrantReadWriteLock(false);

 // Read lock with unnamed variable
 try (var _ = lock.readOpen()) {
     // Read protected data
     System.out.println("Reading data...");
 } // Read lock auto-released here

 // Write lock with named variable
 try (var writeLock = lock.writeOpen()) {
     // Modify protected data
     System.out.println("Writing data...");
 } // Write lock auto-released here

 // Multiple locks with unnamed variables
 try (var _ = lock.readLock();
      var __ = lock.writeLock()) {
     // Combined read/write operations
     System.out.println("Reading and writing data...");
 }
 
Since:
20.12.2023
See Also: