Class GridStripedLock


  • public class GridStripedLock
    extends Object
    This is an utility class for 'splitting' locking of some int- or long-keyed resources. Map int and long values to some number of locks, and supply convenience methods to obtain and release these locks using key values.
    • Constructor Detail

      • GridStripedLock

        public GridStripedLock​(int concurrencyLevel)
        Creates new instance with the given concurrency level (number of locks).
        Parameters:
        concurrencyLevel - Concurrency level.
    • Method Detail

      • concurrencyLevel

        public int concurrencyLevel()
        Gets concurrency level.
        Returns:
        Concurrency level.
      • getLock

        public Lock getLock​(int key)
        Returns Lock object for the given key.
        Parameters:
        key - Key.
        Returns:
        Lock.
      • getLock

        public Lock getLock​(long key)
        Returns Lock object for the given key.
        Parameters:
        key - Key.
        Returns:
        Lock.
      • getLock

        public Lock getLock​(@Nullable
                            @Nullable Object o)
        Returns lock for object.
        Parameters:
        o - Object.
        Returns:
        Lock.
      • lock

        public void lock​(int key)
        Locks given key.
        Parameters:
        key - Key.
      • unlock

        public void unlock​(int key)
        Unlocks given key.
        Parameters:
        key - Key.
      • lock

        public void lock​(long key)
        Locks given key.
        Parameters:
        key - Key.
      • unlock

        public void unlock​(long key)
        Unlocks given key.
        Parameters:
        key - Key.
      • lock

        public void lock​(@Nullable
                         @Nullable Object o)
        Locks an object.
        Parameters:
        o - Object.
      • unlock

        public void unlock​(@Nullable
                           @Nullable Object o)
        Unlocks an object.
        Parameters:
        o - Object.