|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectgroovyx.gpars.group.PGroup
public abstract class PGroup
Provides a common super class of pooled parallel groups.
| Field Summary | |
|---|---|
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 |
| Constructor Summary | |
|---|---|
protected |
PGroup(Pool threadPool)
Creates a group for actors, agents, tasks and operators. |
| Method Summary | ||
|---|---|---|
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 state)
Creates an agent instance initialized with the given state |
|
|
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. |
|
|
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. |
|
|
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
|
isListAccepting(groovy.lang.Closure<T> code)
|
|
Actor |
messageHandler(groovy.lang.Closure code)
Creates an instance of DynamicDispatchActor. |
|
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 |
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(java.util.Map channels,
groovy.lang.Closure code)
Creates an operator using the current parallel group |
|
DataflowProcessor |
prioritySelector(java.util.List inputChannels,
java.util.List outputChannels)
Creates a prioritizing selector using the default dataflow parallel group. |
|
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.Map channels,
groovy.lang.Closure code)
Creates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority. |
|
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(DataflowReadChannel... channels)
Creates a select using the current parallel group. |
|
Select |
select(java.util.List<DataflowReadChannel> channels)
Creates a select using the current parallel group. |
|
DataflowProcessor |
selector(java.util.List inputChannels,
java.util.List outputChannels)
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.Map channels,
groovy.lang.Closure code)
Creates a selector using this parallel group |
|
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. |
|
|
task(java.util.concurrent.Callable<T> callable)
Creates a new task assigned to a thread from the current parallel group. |
|
|
task(groovy.lang.Closure<T> code)
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. |
|
|
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. |
|
|
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. |
|
private
|
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 |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final java.lang.String A_SPLITTER_NEEDS_AN_INPUT_CHANNEL_AND_AT_LEAST_ONE_OUTPUT_CHANNEL_TO_BE_CREATED
private final Pool threadPool
| Constructor Detail |
|---|
protected PGroup(Pool threadPool)
threadPool - The thread pool to use by the group| Method Detail |
|---|
public Pool getThreadPool()
public final DefaultActor actor(java.lang.Runnable handler)
handler - The body of the newly created actor's act method.
public final BlockingActor blockingActor(java.lang.Runnable handler)
handler - The body of the newly created actor's act method.
public final DefaultActor fairActor(java.lang.Runnable handler)
handler - The body of the newly created actor's act method.
public final Actor reactor(groovy.lang.Closure code)
code - The code to invoke for each received message
public final Actor fairReactor(groovy.lang.Closure code)
code - The code to invoke for each received message
public final Actor messageHandler(groovy.lang.Closure code)
code - The closure specifying individual message handlers.
public final Actor fairMessageHandler(groovy.lang.Closure code)
code - The closure specifying individual message handlers.
public final Actor staticMessageHandler(groovy.lang.Closure code)
code - The closure specifying the only statically dispatched message handler.
public final Actor fairStaticMessageHandler(groovy.lang.Closure code)
code - The closure specifying the only statically dispatched message handler.
public final <T> Agent<T> agent(T state)
state - The initial internal state of the new Agent instance
public final <T> Agent<T> agent(T state,
groovy.lang.Closure copy)
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 out
public final <T> Agent<T> fairAgent(T state)
state - The initial internal state of the new Agent instance
public final <T> Agent<T> fairAgent(T state,
groovy.lang.Closure copy)
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 instance
public final <T> Promise<T> task(groovy.lang.Closure<T> code)
code - The task body to run
public final <T> Promise<T> task(java.util.concurrent.Callable<T> callable)
callable - The task body to run
public final Promise<java.lang.Object> task(java.lang.Runnable code)
code - The task body to run
public final DataflowProcessor operator(java.util.Map channels,
groovy.lang.Closure code)
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 read
public final DataflowProcessor operator(java.util.List inputChannels,
java.util.List outputChannels,
groovy.lang.Closure code)
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 read
public final DataflowProcessor operator(java.util.List inputChannels,
java.util.List outputChannels,
int maxForks,
groovy.lang.Closure code)
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 read
public final DataflowProcessor operator(DataflowReadChannel input,
DataflowWriteChannel output,
groovy.lang.Closure code)
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 read
public final DataflowProcessor operator(DataflowReadChannel input,
DataflowWriteChannel output,
int maxForks,
groovy.lang.Closure code)
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 read
public final DataflowProcessor selector(java.util.Map channels,
groovy.lang.Closure code)
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 channels
public final DataflowProcessor selector(java.util.List inputChannels,
java.util.List outputChannels,
groovy.lang.Closure code)
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 channels
public final DataflowProcessor selector(java.util.Map channels)
channels - A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputs
public final DataflowProcessor selector(java.util.List inputChannels,
java.util.List outputChannels)
inputChannels - dataflow channels to use for inputoutputChannels - dataflow channels to use for output
public final DataflowProcessor prioritySelector(java.util.Map channels,
groovy.lang.Closure code)
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 channels
public final DataflowProcessor prioritySelector(java.util.List inputChannels,
java.util.List outputChannels,
groovy.lang.Closure code)
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 channels
public final DataflowProcessor prioritySelector(java.util.Map channels)
channels - A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputs
public final DataflowProcessor prioritySelector(java.util.List inputChannels,
java.util.List outputChannels)
inputChannels - dataflow channels to use for inputoutputChannels - dataflow channels to use for output
public final DataflowProcessor splitter(DataflowReadChannel inputChannel,
java.util.List<DataflowWriteChannel> outputChannels)
inputChannel - The channel to read values fromoutputChannels - A list of channels to output to
public final DataflowProcessor splitter(DataflowReadChannel inputChannel,
java.util.List<DataflowWriteChannel> outputChannels,
int maxForks)
inputChannel - The channel to read values fromoutputChannels - A list of channels to output tomaxForks - Number of threads running the splitter's body, defaults to 1
public final Select select(DataflowReadChannel... channels)
channels - Dataflow variables or streams to wait for values onpublic final Select select(java.util.List<DataflowReadChannel> channels)
channels - Dataflow variables or streams to wait for values on
public final <T> Promise<T> whenAllBound(java.util.List<Promise> promises,
groovy.lang.Closure<T> code)
T - The type of the final resultpromises - The promises to wait forcode - A closure to execute with concrete values for each of the supplied promises
public final <T> Promise<T> whenAllBound(Promise promise1,
groovy.lang.Closure<T> code)
T - The type of the final resultpromise1 - The promises to wait forcode - A closure to execute with concrete values for each of the supplied promises
public final <T> Promise<T> whenAllBound(Promise promise1,
Promise promise2,
groovy.lang.Closure<T> code)
T - The type of the final resultpromise1 - The promises to wait forpromise2 - The promises to wait forcode - A closure to execute with concrete values for each of the supplied promises
public final <T> Promise<T> whenAllBound(Promise promise1,
Promise promise2,
Promise promise3,
groovy.lang.Closure<T> code)
T - The type of the final resultpromise1 - 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
public final <T> Promise<T> whenAllBound(Promise promise1,
Promise promise2,
Promise promise3,
Promise promise4,
groovy.lang.Closure<T> code)
T - The type of the final resultpromise1 - 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
public final <T> Promise<T> whenAllBound(java.util.List<Promise> promises,
groovy.lang.Closure<T> code,
groovy.lang.Closure<T> errorHandler)
T - The type of the final resultpromises - 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
public final <T> Promise<T> whenAllBound(Promise promise1,
groovy.lang.Closure<T> code,
groovy.lang.Closure<T> errorHandler)
T - The type of the final resultpromise1 - 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
public final <T> Promise<T> whenAllBound(Promise promise1,
Promise promise2,
groovy.lang.Closure<T> code,
groovy.lang.Closure<T> errorHandler)
T - The type of the final resultpromise1 - 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
public final <T> Promise<T> whenAllBound(Promise promise1,
Promise promise2,
Promise promise3,
groovy.lang.Closure<T> code,
groovy.lang.Closure<T> errorHandler)
T - The type of the final resultpromise1 - 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
public final <T> Promise<T> whenAllBound(Promise promise1,
Promise promise2,
Promise promise3,
Promise promise4,
groovy.lang.Closure<T> code,
groovy.lang.Closure<T> errorHandler)
T - The type of the final resultpromise1 - 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
private <T> 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)
T - The type of the final resultpromises - 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 boundprivate static <T> boolean isListAccepting(groovy.lang.Closure<T> code)
protected void finalize()
throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwablepublic void resize(int poolSize)
poolSize - The new pool sizepublic void resetDefaultSize()
public int getPoolSize()
public void execute(java.lang.Runnable task)
task - The task to schedulepublic void shutdown()
|
Copyright © 2008–2012 Václav Pech. All Rights Reserved. | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||