|
org.codehaus.gpars | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object groovyx.gpars.group.PGroup
@SuppressWarnings({"RawUseOfParameterizedType"}) 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
|
agent(java.lang.Object state)
Creates an agent instance initialized with the given state |
Agent
|
agent(java.lang.Object 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
|
fairAgent(java.lang.Object 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
|
fairAgent(java.lang.Object 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 code)
|
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(DataflowReadChannel... channels)
Creates a select using the current parallel group. |
Select
|
select(java.util.List 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. |
void
|
shutdown()
Gently stops the pool |
DataflowProcessor
|
splitter(DataflowReadChannel inputChannel, java.util.List outputChannels)
Creates a splitter copying its single input channel into all of its output channels. |
DataflowProcessor
|
splitter(DataflowReadChannel inputChannel, java.util.List 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
|
task(groovy.lang.Closure code)
Creates a new task assigned to a thread from the current parallel group. |
Promise
|
task(java.util.concurrent.Callable callable)
Creates a new task assigned to a thread from the current parallel group. |
Promise
|
task(java.lang.Runnable code)
Creates a new task assigned to a thread from the current parallel group. |
Promise
|
whenAllBound(java.util.List promises, groovy.lang.Closure code)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, groovy.lang.Closure code)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure code)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure code)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure code)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(java.util.List promises, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Promise
|
whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure code, groovy.lang.Closure 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 promises, int index, java.util.List values, DataflowVariable result, groovy.lang.Closure code, groovy.lang.Closure 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 java.lang.Object | |
---|---|
java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#wait(long, int), 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() |
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 final DefaultActor actor(java.lang.Runnable handler)
handler
- The body of the newly created actor's act method.
public final Agent agent(java.lang.Object state)
state
- The initial internal state of the new Agent instance
public final Agent agent(java.lang.Object 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 BlockingActor blockingActor(java.lang.Runnable handler)
handler
- The body of the newly created actor's act method.
public void execute(java.lang.Runnable task)
task
- The task to schedule
public final DefaultActor fairActor(java.lang.Runnable handler)
handler
- The body of the newly created actor's act method.
public final Agent fairAgent(java.lang.Object state)
state
- The initial internal state of the new Agent instance
public final Agent fairAgent(java.lang.Object 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 Actor fairMessageHandler(groovy.lang.Closure code)
code
- The closure specifying individual message handlers.
public final Actor fairReactor(groovy.lang.Closure code)
code
- The code to invoke for each received message
public final Actor fairStaticMessageHandler(groovy.lang.Closure code)
code
- The closure specifying the only statically dispatched message handler.
@SuppressWarnings({"FinalizeDeclaration"}) @Override protected void finalize()
public int getPoolSize()
public Pool getThreadPool()
private static boolean isListAccepting(groovy.lang.Closure code)
public final Actor messageHandler(groovy.lang.Closure code)
code
- The closure specifying individual message handlers.
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 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 Actor reactor(groovy.lang.Closure code)
code
- The code to invoke for each received message
public void resetDefaultSize()
public void resize(int poolSize)
poolSize
- The new pool size
public final Select select(DataflowReadChannel... channels)
channels
- Dataflow variables or streams to wait for values on
public final Select select(java.util.List channels)
channels
- Dataflow variables or streams to wait for values on
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 void shutdown()
public final DataflowProcessor splitter(DataflowReadChannel inputChannel, java.util.List outputChannels)
inputChannel
- The channel to read values fromoutputChannels
- A list of channels to output to
public final DataflowProcessor splitter(DataflowReadChannel inputChannel, java.util.List 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 Actor staticMessageHandler(groovy.lang.Closure code)
code
- The closure specifying the only statically dispatched message handler.
public final Promise task(groovy.lang.Closure code)
code
- The task body to run
public final Promise task(java.util.concurrent.Callable callable)
callable
- The task body to run
public final Promise task(java.lang.Runnable code)
code
- The task body to run
public final Promise whenAllBound(java.util.List promises, groovy.lang.Closure code)
promises
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final result
public final Promise whenAllBound(Promise promise1, groovy.lang.Closure code)
promise1
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final result
public final Promise whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure code)
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 result
public final Promise whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure code)
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 result
public final Promise whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure code)
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 result
public final Promise whenAllBound(java.util.List promises, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
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 if it gets bound
- The type of the final result
public final Promise whenAllBound(Promise promise1, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
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 result
public final Promise whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
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 result
public final Promise whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
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 result
public final Promise whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
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 result
private void whenAllBound(java.util.List promises, int index, java.util.List values, DataflowVariable result, groovy.lang.Closure code, groovy.lang.Closure errorHandler)
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 result
Copyright © 2008–2012 Václav Pech. All Rights Reserved.