Class AbstractObjectPool<T>

java.lang.Object
com.github._1c_syntax.bsl.languageserver.utils.AbstractObjectPool<T>
Type Parameters:
T - Type T of Object in the Pool
Direct Known Subclasses:
JLanguageToolPool

public abstract class AbstractObjectPool<T> extends Object
Generic object pool.

Может быть ограничен по количеству создаваемых объектов: при достижении лимита checkOut() блокируется до возврата объекта через checkIn(Object).

  • Constructor Details

    • AbstractObjectPool

      protected AbstractObjectPool()
    • AbstractObjectPool

      protected AbstractObjectPool(int maxSize)
      Parameters:
      maxSize - максимальное суммарное количество объектов пула (доступных и выданных); не меньше 1.
  • Method Details

    • create

      protected abstract T create()
    • checkOut

      public T checkOut()
      Checkout object from pool.

      Если пул пуст и лимит объектов исчерпан — ждёт возврата объекта. Прерывание потока во время ожидания не прерывает выдачу: флаг прерывания восстанавливается, а прерванный поток получает объект сверх лимита (пул может временно превысить maxSize на число прерванных ожидающих).

    • checkIn

      public void checkIn(T instance)
    • toString

      public String toString()
      Overrides:
      toString in class Object