Оператор 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;
}