2015-01-28 2 views
1

Мне нужно выполнить несколько задач муравьев. Они не должны работать в одной JVM, gnu make-like fork() -ed исполнение на этот раз отлично (*).Parallelizing ant like GNU Make?

Но, что мне нужно, это была функциональность с помощью gnu make can с флагом -j: мне нужно ограничить максимальное количество задач, выполняемых параллельно. Это основная проблема, в моих текущих попытках (задача подзаголовка) я не нашел для этого никакого варианта.

Итак, есть ли решение проблемы? Я действительно не буду называть gnu make с заданием exec ...

(*) Да, я знаю, что это неэффективно, пожалуйста, не беспокойтесь из-за этого. В обычных условиях я также предпочитаю многопоточное решение, но теперь есть особые обстоятельства.

ответ

1

Вы можете использовать <parallel> задачу в муравья, то doc's описать, как это:

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

Пример (из их документов):

<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> 
+0

Uhmm, хорошо ... спасибо! :-) –

Смежные вопросы