Перейти к основному содержимому
Версия: 5.x

Оператор NEWEXECUTOR

Оператор NEWEXECUTOR - создание действия, позволяющего выполнение других действий в новом пуле потоков.

Синтаксис

NEWEXECUTOR action THREADS threadExpr [syncType]

Описание

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

Параметры

  • action

    Контекстно-зависимый оператор-действие, описывающий действие, которое будет выполнено.

  • threadExpr

    Выражение, значение которого определяет количество потоков в пуле. Должно возвращать значение класса INTEGER.

  • syncType

    Тип синхронизации. Определяет, когда завершается выполнение NEWEXECUTOR, позволяя выбрать между синхронным и асинхронным подходами. Задается одним из ключевых слов:

    • WAIT - после завершения выполнения всех потоков. Это значение используется по умолчанию.
    • NOWAIT - сразу после запуска всех потоков.

Примеры

testExecutor  {
NEWEXECUTOR {
FOR id(Sku s) DO {
NEWTHREAD {
NEWSESSION {
name(s) <- STRING[20](id(s)); // записываем в наименование код в 10 потоков
APPLY;
}
}
}
} THREADS 10 NOWAIT;
}