-
Notifications
You must be signed in to change notification settings - Fork 3
Многопоточность
Ivan edited this page May 22, 2015
·
4 revisions
По-умолчанию трансформация происходит в одном потоке. Чтобы трансформация стала многопоточной, нужно создать пул потоков с помощью метода CreateThreadPool(size)
.
Пример:
$engine = new TurboXSLT;
my $st = $engine->LoadStylesheet($XSLT);
$st->CreateThreadPool(8);
$st->Output($st->Transform($doc));
Будет создан пул на 8 потоков.
Для управления списком инструкций, которые поддерживают параллельное выполнение, используется функция SetParallelInstructions(\@array)
.
Пример:
$engine = new TurboXSLT;
my $st = $engine->LoadStylesheet($XSLT);
my @instructions = ("xsl:element", "xsl:call-template");
$st->SetParallelInstructions(\@instructions);
$st->Output($st->Transform($doc));
Теперь для двух инструкций будут создаваться новые задачи.