mirror of
https://github.com/apache/ant.git
synced 2025-05-16 13:05:14 +00:00
(1) Make sure there is a Copyright notice on all visible files. (2) Make sure all years in which the file has been modified are listed. (3) Make sure the format is consistent, i.e. separate consecutive years with a dash, not a comma. When Stephane changed starteam.html it has been 2001 in France but 2002 in Australia - does that mean we add 2002 to the Copyright line or not? ;-) git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270652 13f79535-47bb-0310-9956-ffa450edef68
84 lines
3.2 KiB
HTML
84 lines
3.2 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
<title>Apache Ant User Manual</title>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h2>Parallel</h2>
|
|
<h3>Description</h3>
|
|
<p>Parallel is a container task - it can contain other Ant tasks. Each nested
|
|
task within the parallel task will be executed in its own thread. </p>
|
|
|
|
<p>Parallel tasks have a number of uses in an Ant build file including:</p>
|
|
<ul>
|
|
<li>Taking advantage of available processing resources to reduce build time</li>
|
|
<li>Testing servers, where the server can be run in one thread and the test
|
|
harness is run in another thread.</li>
|
|
</ul>
|
|
|
|
<p>Care must be taken when using multithreading to ensure the tasks within the
|
|
threads do not interact. For example, two javac compile tasks which write
|
|
classes into the same destination directory may interact where one tries to
|
|
read a class for dependency information while the other task is writing the
|
|
class file. Be sure to avoid these types of interactions within a
|
|
<parallel> task</p>
|
|
|
|
<p>The parallel task has no attributes and does not support any nested
|
|
elements apart from Ant tasks. Any valid Ant task may be embedded within a
|
|
parallel task, including other parallel tasks.</p>
|
|
|
|
<p>Note that while the tasks within the parallel task are being run, the main
|
|
thread will be blocked waiting for all the child threads to complete.</p>
|
|
|
|
<p>If any of the tasks within the <parallel> task fails, the remaining
|
|
tasks in other threads will continue to run until all threads have completed.
|
|
In this situation, the parallel task will also fail.</p>
|
|
|
|
<p>The parallel task may be combined with the <a href="sequential.html">
|
|
sequential</a> task to define sequences of tasks to be executed on each thread
|
|
within the parallel block</p>
|
|
|
|
<h3>Examples</h3>
|
|
<pre>
|
|
<parallel>
|
|
<wlrun ...>
|
|
<sequential>
|
|
<sleep seconds="30"/>
|
|
<junit ...>
|
|
<wlstop/>
|
|
</sequential>
|
|
</parallel>
|
|
</pre>
|
|
<p>This example represents a typical pattern for testing a server application.
|
|
In one thread the server is started (the wlrun task). The other thread consists
|
|
of a three tasks which are performed in sequence. The sleep task is used to
|
|
give the server time to come up. Another task which is capable of validating
|
|
that the server is available could be used in place of the sleep task. The
|
|
test harness is then run. Once the tests are complete, the server is stopped
|
|
(using wlstop in this example), allowing both threads to complete. The
|
|
parallel task will also complete at this time and the build will then
|
|
continue.</p>
|
|
|
|
<pre>
|
|
<parallel>
|
|
<javac ...> <!-- compiler servlet code -->
|
|
<wljspc ...> <!-- precompile JSPs -->
|
|
</parallel>
|
|
</pre>
|
|
|
|
<p>This example shows two independent tasks being run to achieve better
|
|
resource utilization during the build. In this instance, some servlets are being
|
|
compiled in one thead and a set of JSPs is being precompiled in another. As
|
|
noted above, you need to be careful that the two tasks are independent, both in
|
|
terms of their dependencies and in terms of their potential interactions in
|
|
Ant's external environment.</p>
|
|
<hr>
|
|
<p align="center">Copyright © 2001 Apache Software Foundation. All rights
|
|
Reserved.</p>
|
|
</body>
|
|
</html>
|
|
|