像 GNU Make 一样并行化 ant?
Parallelizing ant like GNU Make?
我需要执行多个蚂蚁任务。他们没有在同一个 JVM 中 运行,这次 gnu make-like fork()
-ed 执行是完美的 (*)。
但是,我需要的是带有 -j
标志的 gnu make 的功能:我需要能够限制 运行ning 并行任务的最大数量。这是主要问题,在我目前的尝试(子任务)中我没有找到任何选项。
那么,这个问题有解决办法吗?我真的不会用 exec
任务调用 gnu make...
(*) 是的,我知道这是低效的,请不要因此而担心。一般情况下我也比较喜欢多线程的方案,但是现在有特殊情况。
你可以在ant中使用<parallel>
任务,doc's描述为:
Executes nested tasks in parallel with no guarantees of thread safety. Every task will run in its own thread, with the likelihood of concurrency problems scaling with the number of CPUs on the host system.
示例(来自他们的文档):
<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>
我需要执行多个蚂蚁任务。他们没有在同一个 JVM 中 运行,这次 gnu make-like fork()
-ed 执行是完美的 (*)。
但是,我需要的是带有 -j
标志的 gnu make 的功能:我需要能够限制 运行ning 并行任务的最大数量。这是主要问题,在我目前的尝试(子任务)中我没有找到任何选项。
那么,这个问题有解决办法吗?我真的不会用 exec
任务调用 gnu make...
(*) 是的,我知道这是低效的,请不要因此而担心。一般情况下我也比较喜欢多线程的方案,但是现在有特殊情况。
你可以在ant中使用<parallel>
任务,doc's描述为:
Executes nested tasks in parallel with no guarantees of thread safety. Every task will run in its own thread, with the likelihood of concurrency problems scaling with the number of CPUs on the host system.
示例(来自他们的文档):
<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>