CoreThreadInterrupter

public interface CoreThreadInterrupter extends CloseableObj

Added in version AS: 1.20.0-rc22

Интерфейс прерывателя потока.

Позволяет объявлять блоки кода, защищённые от прерывания работы потока.

Methods

interrupt

void interrupt()

Устанавливает флаг isInterrupted().

Если перед вызовом метода не был вызван один из методов withLock(ru.bitec.common.util.function.ForwardProcedure) или withLockForce(ru.bitec.common.util.function.ForwardProcedure), будет выполнен вызов метода Thread.interrupt(). Иначе факт вызова будет запомнен, и Thread.interrupt() будет вызван при выходе из метода withLock(ru.bitec.common.util.function.ForwardProcedure) или withLockForce(ru.bitec.common.util.function.ForwardProcedure).

isInterrupted

boolean isInterrupted()

Флаг указывает, что был вызван метод interrupt() и, при выходе из безопасной секции, для потока будет вызван Thread.interrupt().

Returns:

true если был вызван метод interrupt(), иначе false.

resume

void resume()

Сбрасывает флаг isInterrupted().

withLock

void withLock(ForwardProcedure proc)

Метод выполняет блокировку прерывания потока (методом interrupt()) на время выполнения proc. Перед выполнением proc выполняется проверка необходимости прерывания потока.

Parameters:
  • proc – анонимная процедура

Throws:
  • Exception – При ошибках выполнения анонимной процедуры

withLock

<R> R withLock(ForwardFunction<R> func)

Метод выполняет блокировку прерывания потока (методом interrupt()) на время выполнения func. Перед выполнением func выполняется проверка необходимости прерывания потока.

Parameters:
  • func – анонимная функция

  • <R> – Тип результата анонимной функции

Throws:
  • Exception – При ошибках выполнения анонимной функции

Returns:

Результат выполнения анонимной функции

withLockForce

void withLockForce(ForwardProcedure proc)

Метод выполняет блокировку прерывания потока (методом interrupt()) на время выполнения proc. Если поток уже был прерван, с потока снимается флаг isInterrupted, выполняется proc, возвращается исходное состояние флага isInterrupted.

Parameters:
  • proc – анонимная процедура

Throws:
  • Exception – При ошибках выполнения анонимной процедуры

withLockForce

<R> R withLockForce(ForwardFunction<R> func)

Метод выполняет блокировку прерывания потока (методом interrupt()) на время выполнения func. Если поток уже был прерван, с потока снимается флаг isInterrupted, выполняется func, возвращается исходное состояние флага isInterrupted.

Parameters:
  • func – анонимная функция

  • <R> – Тип результата анонимной функции

Throws:
  • Exception – При ошибках выполнения анонимной функции

Returns:

Результат выполнения анонимной функции