Class ThreadResourcesBalancer

  • All Implemented Interfaces:
    Balancer

    final class ThreadResourcesBalancer
    extends java.lang.Object
    implements Balancer
    Since:
    2.16
    See Also:
    Balancer
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.concurrent.Semaphore balancer  
      private int numPermits  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean acquirePermit()
      Acquires a permit from this balancer, blocking until one is available.
      void releaseAllPermits()  
      void releasePermit()
      Releases a permit, returning it to the balancer.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • balancer

        private final java.util.concurrent.Semaphore balancer
      • numPermits

        private final int numPermits
    • Constructor Detail

      • ThreadResourcesBalancer

        ThreadResourcesBalancer​(int numPermits)
        fair set to false.
        Parameters:
        numPermits - number of permits to acquire when maintaining concurrency on tests. Must be >0 and < Integer.MAX_VALUE.
        See Also:
        ThreadResourcesBalancer(int, boolean)
      • ThreadResourcesBalancer

        ThreadResourcesBalancer​(int numPermits,
                                boolean fair)
        Parameters:
        numPermits - number of permits to acquire when maintaining concurrency on tests. Must be >0 and < Integer.MAX_VALUE.
        fair - true guarantees the waiting schedulers to wake up in order they acquired a permit
        Throws:
        java.lang.IllegalArgumentException - if numPermits is not positive number
    • Method Detail

      • acquirePermit

        public boolean acquirePermit()
        Acquires a permit from this balancer, blocking until one is available.
        Specified by:
        acquirePermit in interface Balancer
        Returns:
        true if current thread is NOT interrupted while waiting for a permit.
      • releasePermit

        public void releasePermit()
        Releases a permit, returning it to the balancer.
        Specified by:
        releasePermit in interface Balancer