Package org.apache.tools.ant.taskdefs
Class Parallel
java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.Parallel
- All Implemented Interfaces:
- Cloneable,- TaskContainer
Executes the contained tasks in separate threads, continuing
 once all are completed.
 
 New behavior allows for the ant script to specify a maximum number of
 threads that will be executed in parallel.  One should be very careful about
 using the waitFor task when specifying threadCount
 as it can cause deadlocks if the number of threads is too small or if one of
 the nested tasks fails to execute completely.  The task selection algorithm
 will insure that the tasks listed before a task have started before that
 task is started, but it will not insure a successful completion of those
 tasks or that those tasks will finish first (i.e. it's a classic race
 condition).
 
- Since:
- Ant 1.4
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classClass which holds a list of tasks to execute
- 
Field SummaryFields inherited from class org.apache.tools.ant.ProjectComponentdescription, location, project
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddDaemons(Parallel.TaskList daemonTasks) Add a group of daemon threadsvoidAdd a nested task to execute in parallel.voidexecute()Execute the parallel tasksvoidsetFailOnAny(boolean failOnAny) Control whether a failure in a nested task halts execution.voidsetPollInterval(int pollInterval) Interval to poll for completed threads when threadCount or threadsPerProcessor is specified.voidsetThreadCount(int numThreads) Statically determine the maximum number of tasks to execute simultaneously.voidsetThreadsPerProcessor(int numThreadsPerProcessor) Dynamically generates the number of threads to execute based on the number of available processors (viajava.lang.Runtime.availableProcessors()).voidsetTimeout(long timeout) Sets the timeout on this set of tasks.Methods inherited from class org.apache.tools.ant.TaskbindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskTypeMethods inherited from class org.apache.tools.ant.ProjectComponentclone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
- 
Constructor Details- 
Parallelpublic Parallel()
 
- 
- 
Method Details- 
addDaemonsAdd a group of daemon threads- Parameters:
- daemonTasks- The tasks to be executed as daemon.
 
- 
setPollIntervalpublic void setPollInterval(int pollInterval) Interval to poll for completed threads when threadCount or threadsPerProcessor is specified. Integer in milliseconds.; optional- Parameters:
- pollInterval- New value of property pollInterval.
 
- 
setFailOnAnypublic void setFailOnAny(boolean failOnAny) Control whether a failure in a nested task halts execution. Note that the task will complete but existing threads will continue to run - they are not stopped- Parameters:
- failOnAny- if true any nested task failure causes parallel to complete.
 
- 
addTaskAdd a nested task to execute in parallel.- Specified by:
- addTaskin interface- TaskContainer
- Parameters:
- nestedTask- Nested task to be executed in parallel
 
- 
setThreadsPerProcessorpublic void setThreadsPerProcessor(int numThreadsPerProcessor) Dynamically generates the number of threads to execute based on the number of available processors (viajava.lang.Runtime.availableProcessors()). Will overwrite the value set in threadCount; optional- Parameters:
- numThreadsPerProcessor- Number of threads to create per available processor.
 
- 
setThreadCountpublic void setThreadCount(int numThreads) Statically determine the maximum number of tasks to execute simultaneously. If there are less tasks than threads then all will be executed at once, if there are more then onlythreadCounttasks will be executed at one time. IfthreadsPerProcessoris set then this value is ignored.; optional- Parameters:
- numThreads- total number of threads.
 
- 
setTimeoutpublic void setTimeout(long timeout) Sets the timeout on this set of tasks. If the timeout is reached before the other threads complete, the execution of this task completes with an exception. Note that existing threads continue to run.- Parameters:
- timeout- timeout in milliseconds.
 
- 
executeExecute the parallel tasks- Overrides:
- executein class- Task
- Throws:
- BuildException- if any of the threads failed.
 
 
-