2.2. Параллельные вычисления#

New in version AS: 1.20 rc 22

В коде модуля GTK решения допускается запуск дополнительных потоков для выполнения параллельных вычислений или ожидания выполнения асинхронного взаимодействия с внешними сервисами.

Для связывания создаваемого потока с инфраструктурой AS необходимо:

После этого, в потоке будут инициализированы все контекстные переменные, необходимые для создания и открытия прикладной GTK-сессии, предоставляющей доступ к данным и коду решения от имени пользователя, владеющего рабочим сеансом.

По завершению работы дополнительного потока, необходимо, вызовом метода WorkSessionSubCtx.leaveThread(), отвязать подчинённый контекст от потока. Иначе, при использовании пула потоков java.util.concurrent.ExecutorService, повторная попытка связывания потока и подчиненного контекста рабочего сеанса приведёт к ошибке, т.к. один поток может работать только с одним контекстом.