Provides a common super class of pooled parallel groups.
Modifiers | Name | Description |
---|---|---|
protected static java.lang.String |
A_SPLITTER_NEEDS_AN_INPUT_CHANNEL_AND_AT_LEAST_ONE_OUTPUT_CHANNEL_TO_BE_CREATED |
|
private Pool |
threadPool |
Stores the group actors' thread pool |
Type | Name and description |
---|---|
DefaultActor |
actor(java.lang.Runnable handler) Creates a new instance of DefaultActor, using the passed-in runnable/closure as the body of the actor's act() method. |
Agent<T> |
agent(T state) Creates an agent instance initialized with the given state |
Agent<T> |
agent(T state, groovy.lang.Closure copy) Creates an agent instance initialized with the given state |
BlockingActor |
blockingActor(java.lang.Runnable handler) Creates a new instance of BlockingActor, using the passed-in closure as the body of the actor's act() method. |
void |
execute(java.lang.Runnable task) schedules a new task for processing with the pool |
DefaultActor |
fairActor(java.lang.Runnable handler) Creates a new instance of DefaultActor, using the passed-in runnable/closure as the body of the actor's act() method. |
Agent<T> |
fairAgent(T state) Creates an agent instance initialized with the given state, which will cooperate in thread sharing with other agents and actors in a fair manner. |
Agent<T> |
fairAgent(T state, groovy.lang.Closure copy) Creates an agent instance initialized with the given state, which will cooperate in thread sharing with other agents and actors in a fair manner. |
Actor |
fairMessageHandler(groovy.lang.Closure code) Creates an instance of DynamicDispatchActor, which will cooperate in thread sharing with other actors sharing the same thread pool |
Actor |
fairReactor(groovy.lang.Closure code) Creates a reactor around the supplied code, which will cooperate in thread sharing with other actors sharing the same thread pool When a reactor receives a message, the supplied block of code is run with the message as a parameter and the result of the code is send in reply. |
Actor |
fairStaticMessageHandler(groovy.lang.Closure code) Creates an instance of StaticDispatchActor, which will cooperate in thread sharing with other actors sharing the same thread pool. |
protected void |
finalize() Shutdown the thread pool gracefully |
int |
getPoolSize() Retrieves the current thread pool size |
Pool |
getThreadPool() |
private static boolean |
isListAccepting(groovy.lang.Closure<T> code) |
Promise<T> |
lazyTask(groovy.lang.Closure<T> code) Creates a new task assigned to a thread from the current parallel group. |
Promise<T> |
lazyTask(java.util.concurrent.Callable<T> callable) Creates a new task assigned to a thread from the current parallel group. |
Actor |
messageHandler(groovy.lang.Closure code) Creates an instance of DynamicDispatchActor. |
DataflowProcessor |
operator(java.util.Map channels, groovy.lang.Closure code) Creates an operator using the current parallel group |
DataflowProcessor |
operator(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code) Creates an operator using the current parallel group |
DataflowProcessor |
operator(java.util.List inputChannels, java.util.List outputChannels, int maxForks, groovy.lang.Closure code) Creates an operator using the current parallel group |
DataflowProcessor |
operator(DataflowReadChannel input, DataflowWriteChannel output, groovy.lang.Closure code) Creates an operator using the current parallel group |
DataflowProcessor |
operator(DataflowReadChannel input, DataflowWriteChannel output, int maxForks, groovy.lang.Closure code) Creates an operator using the current parallel group |
DataflowProcessor |
prioritySelector(java.util.Map channels, groovy.lang.Closure code) Creates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority. |
DataflowProcessor |
prioritySelector(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code) Creates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority. |
DataflowProcessor |
prioritySelector(java.util.Map channels) Creates a prioritizing selector using the default dataflow parallel group. |
DataflowProcessor |
prioritySelector(java.util.List inputChannels, java.util.List outputChannels) Creates a prioritizing selector using the default dataflow parallel group. |
Actor |
reactor(groovy.lang.Closure code) Creates a reactor around the supplied code. |
void |
resetDefaultSize() Sets the pool size to the default |
void |
resize(int poolSize) Resizes the thread pool to the specified value |
Select |
select(SelectableChannel... channels) Creates a select using the current parallel group. |
Select |
select(java.util.List<? extends SelectableChannel> channels) Creates a select using the current parallel group. |
DataflowProcessor |
selector(java.util.Map channels, groovy.lang.Closure code) Creates a selector using this parallel group |
DataflowProcessor |
selector(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code) Creates a selector using this parallel group |
DataflowProcessor |
selector(java.util.Map channels) Creates a selector using this parallel group. |
DataflowProcessor |
selector(java.util.List inputChannels, java.util.List outputChannels) Creates a selector using this parallel group. |
private boolean |
shallHandle(groovy.lang.Closure<T> errorHandler, java.lang.Throwable e) |
void |
shutdown() Gently stops the pool |
DataflowProcessor |
splitter(DataflowReadChannel inputChannel, java.util.List<DataflowWriteChannel> outputChannels) Creates a splitter copying its single input channel into all of its output channels. |
DataflowProcessor |
splitter(DataflowReadChannel inputChannel, java.util.List<DataflowWriteChannel> outputChannels, int maxForks) Creates a splitter copying its single input channel into all of its output channels. |
Actor |
staticMessageHandler(groovy.lang.Closure code) Creates an instance of StaticDispatchActor. |
Promise<T> |
task(groovy.lang.Closure<T> code) Creates a new task assigned to a thread from the current parallel group. |
Promise<T> |
task(java.util.concurrent.Callable<T> callable) Creates a new task assigned to a thread from the current parallel group. |
Promise<java.lang.Object> |
task(java.lang.Runnable code) Creates a new task assigned to a thread from the current parallel group. |
Promise<T> |
whenAllBound(java.util.List<Promise> promises, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(java.util.List<Promise> promises, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
private void |
whenAllBound(java.util.List<Promise> promises, int index, java.util.List<java.lang.Object> values, DataflowVariable<T> result, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Waits for the promise identified by the index to be bound and then passes on to the next promise in the list |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Stores the group actors' thread pool
Creates a group for actors, agents, tasks and operators. The actors will share a common daemon thread pool.
threadPool
- The thread pool to use by the groupCreates a new instance of DefaultActor, using the passed-in runnable/closure as the body of the actor's act() method. The created actor will belong to the pooled parallel group.
handler
- The body of the newly created actor's act method.Creates an agent instance initialized with the given state
state
- The initial internal state of the new Agent instanceCreates an agent instance initialized with the given state
state
- The initial internal state of the new Agent instancecopy
- A closure to use to create a copy of the internal state when sending the internal state outCreates a new instance of BlockingActor, using the passed-in closure as the body of the actor's act() method. The created actor will be part of the default actor group.
handler
- The body of the newly created actor's act method.schedules a new task for processing with the pool
task
- The task to scheduleCreates a new instance of DefaultActor, using the passed-in runnable/closure as the body of the actor's act() method. The actor will cooperate in thread sharing with other actors sharing the same thread pool in a fair manner. The created actor will belong to the pooled parallel group.
handler
- The body of the newly created actor's act method.Creates an agent instance initialized with the given state, which will cooperate in thread sharing with other agents and actors in a fair manner.
state
- The initial internal state of the new Agent instanceCreates an agent instance initialized with the given state, which will cooperate in thread sharing with other agents and actors in a fair manner.
copy
- A closure to use to create a copy of the internal state when sending the internal state outstate
- The initial internal state of the new Agent instanceCreates an instance of DynamicDispatchActor, which will cooperate in thread sharing with other actors sharing the same thread pool
code
- The closure specifying individual message handlers.Creates a reactor around the supplied code, which will cooperate in thread sharing with other actors sharing the same thread pool When a reactor receives a message, the supplied block of code is run with the message as a parameter and the result of the code is send in reply.
code
- The code to invoke for each received messageCreates an instance of StaticDispatchActor, which will cooperate in thread sharing with other actors sharing the same thread pool.
code
- The closure specifying the only statically dispatched message handler.Shutdown the thread pool gracefully
Retrieves the current thread pool size
Creates a new task assigned to a thread from the current parallel group. The task is lazy, since it only gets executed if the returned Promise instance is read or a then-callback is registered on it. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams. Registers itself with Dataflow for nested 'whenBound' handlers to use the same group.
code
- The task body to runCreates a new task assigned to a thread from the current parallel group. The task is lazy, since it only gets executed if the returned Promise instance is read or a then-callback is registered on it. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams. Registers itself with Dataflow for nested 'whenBound' handlers to use the same group.
callable
- The task body to runCreates an instance of DynamicDispatchActor.
code
- The closure specifying individual message handlers.Creates an operator using the current parallel group
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputscode
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputcode
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputmaxForks
- Number of parallel threads running operator's body, defaults to 1code
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
input
- a dataflow channel to use for inputoutput
- a dataflow channel to use for outputcode
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
input
- a dataflow channel to use for inputoutput
- a dataflow channel to use for outputmaxForks
- Number of parallel threads running operator's body, defaults to 1code
- The operator's body to run each time all inputs have a value to readCreates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputscode
- The selector's body to run each time a value is available in any of the inputs channelsCreates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputcode
- The selector's body to run each time a value is available in any of the inputs channelsCreates a prioritizing selector using the default dataflow parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels. Input with lower position index have higher priority.
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputsCreates a prioritizing selector using the default dataflow parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels. Input with lower position index have higher priority.
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputCreates a reactor around the supplied code. When a reactor receives a message, the supplied block of code is run with the message as a parameter and the result of the code is send in reply.
code
- The code to invoke for each received messageSets the pool size to the default
Resizes the thread pool to the specified value
poolSize
- The new pool sizeCreates a select using the current parallel group. The returns Select instance will allow the user to obtain values from the supplied dataflow variables or streams as they become available.
channels
- Dataflow variables or streams to wait for values onCreates a select using the current parallel group. The returns Select instance will allow the user to obtain values from the supplied dataflow variables or streams as they become available.
channels
- Dataflow variables or streams to wait for values onCreates a selector using this parallel group
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputscode
- The selector's body to run each time a value is available in any of the inputs channelsCreates a selector using this parallel group
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputcode
- The selector's body to run each time a value is available in any of the inputs channelsCreates a selector using this parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels.
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputsCreates a selector using this parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels.
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputGently stops the pool
Creates a splitter copying its single input channel into all of its output channels. The created splitter will be part of this parallel group
inputChannel
- The channel to read values fromoutputChannels
- A list of channels to output toCreates a splitter copying its single input channel into all of its output channels. The created splitter will be part of this parallel group
inputChannel
- The channel to read values fromoutputChannels
- A list of channels to output tomaxForks
- Number of threads running the splitter's body, defaults to 1Creates an instance of StaticDispatchActor.
code
- The closure specifying the only statically dispatched message handler.Creates a new task assigned to a thread from the current parallel group. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams. Registers itself with Dataflow for nested 'whenBound' handlers to use the same group.
code
- The task body to runCreates a new task assigned to a thread from the current parallel group. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams. Registers itself with Dataflow for nested 'whenBound' handlers to use the same group.
callable
- The task body to runCreates a new task assigned to a thread from the current parallel group. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams. Registers itself with Dataflow for nested 'whenBound' handlers to use the same group.
code
- The task body to runWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promises
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forpromise4
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promises
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forpromise4
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if if it gets bound
- The type of the final resultWaits for the promise identified by the index to be bound and then passes on to the next promise in the list
promises
- A list of all promises that need to be waited forindex
- The index of the current promise to wait forvalues
- A list of values the so-far processed promises were bound tporesult
- The promise for the final result of the calculationcode
- The calculation to execute on the values once they are all bound
- The type of the final resultCopyright © 2008–2014 Václav Pech. All Rights Reserved.