executor - Управление исполнителя (executor)

Определяет параметры для стандартного исполнителя ядра Liberty. Обратите внимание, что всегда существует один и только один исполнитель, который используется лишь средой выполнения Liberty и недоступен приложениям непосредственно. Приложения, которым требуется настраивать и использовать исполнители, должны вместо этого использовать управляемые исполнители.

NameTypeDefaultDescription
namestringDefault ExecutorИмя стандартного исполнителя ядра Liberty.
maxThreadsint-1Максимальное число нитей, которые можно связать с исполнителем. Если значение больше 0, то оно должно быть больше либо равно значению coreThreads. Если значение maxThreads меньше либо равно 0, то максимальное число нитей не ограничивается. Обратите внимание, что фактическое число нитей, связанных с исполнителем, определяется ядром Liberty динамически, поэтому если максимальное число нитей остается непривязанным, это не означает, что среда выполнения будет активно создавать множество нитей. Это лишь позволяет ядру Liberty определить, сколько нитей требуется связать с исполнителем без определения верхнего предела.
coreThreadsint-1Число связанных с исполнителем нитей в устойчивом состоянии или нитей ядра. Число нитей исполнителя будет быстро увеличиваться до этого значения. Если указано значение меньше 0, будет использоваться значение по умолчанию. Значение по умолчанию вычисляется на основе числа аппаратных нитей в системе.
keepAliveПериод (с точностью до миллисекунды)60sВремя для хранения бездействующей нити в пуле до возможности ее завершения. Укажите положительное целое число, за которым следует единица времени: часы (h), минуты (m), секунды (s) или миллисекунды (ms). Например, укажите 500 миллисекунд как 500ms. Одна запись может включать несколько значений. Так, 1s500ms равно 1,5 сек.
stealPolicy
  • STRICT
  • NEVER
  • LOCAL
LOCALСтратегия перехвата работы для распределения: варианты определения стратегией способов формирования очереди заданий и получения нитями этих заданий.
STRICT
Все нити, формирующие задания, имеют локальную кучу заданий. Нити, связанные с исполнителем, получают задания из других нитей, если локальная куча заданий исчерпалась.
NEVER
Глобальная очередь заданий используется для передачи заданий в нити, связанные с исполнителем. Перехват выполняться не будет.
LOCAL
Глобальная очередь заданий используется для заданий, сформированных нитями, которые не связаны с исполнителем. Задание, которое сформировано нитями, связанными с исполнителем, помещается в локальную кучу заданий. Эта куча принадлежит создавшей ее нити, пока не будет перехвачена другой нитью. Если в своей локальной куче и глобальной очереди задания заданий нет, то нити, связанные с исполнителем, получают задания, связанные с другими нитями.
rejectedWorkPolicy
  • ABORT
  • CALLER_RUNS
ABORTСтратегия использования в ситуации, если исполнитель не может организовать задание для выполнения.
ABORT
Возникла исключительная ситуация.
CALLER_RUNS
Выполнить задание немедленно в нити инициатора.