Мне нужно выполнить несколько задач ant. Они не должны запускаться в одном JVM, исполнение на gnu make-like fork()
-ed на этот раз отлично (*).
Но, что мне нужно, это была функциональность с помощью gnu make can с флагом -j
: мне нужно ограничить максимальное количество задач, выполняемых параллельно. Это основная проблема, в моих текущих попытках (задача подзаголовка) я не нашел для этого никакого варианта.
Итак, есть ли решение проблемы? Я действительно не буду называть gnu make с задачей exec
...
(*) Да, я знаю, что это неэффективно, пожалуйста, не волнуйся из-за этого. В обычных условиях я также предпочитаю многопоточное решение, но теперь есть особые обстоятельства.
Вы можете использовать задачу <parallel>
в ant, документ описывает это как это:
Выполняет вложенные задачи параллельно без каких-либо гарантий безопасности потоков. Каждая задача будет выполняться в собственном потоке, с вероятностью масштабирования параллелизма с количеством процессоров в хост-системе.
Пример (из их документов):
<parallel threadCount="4">
<dbpurge file="db/one" />
<dbpurge file="db/two" />
<dbpurge file="db/three" />
<dbpurge file="db/four" />
<dbpurge file="db/five" />
<dbpurge file="db/six" />
<dbpurge file="db/seven" />
<dbpurge file="db/eight" />
<!-- repeated about 40 times -->
</parallel>