groovyx.gpars.dataflow.operator
[Groovy] Class DataflowPrioritySelector
java.lang.Object
groovyx.gpars.dataflow.operator.DataflowProcessor
groovyx.gpars.dataflow.operator.DataflowSelector
groovyx.gpars.dataflow.operator.DataflowPrioritySelector
final class DataflowPrioritySelector
extends DataflowSelector
Dataflow selectors and operators (processors) form the basic units in dataflow networks. They are typically combined into oriented graphs that transform data.
They accept a set of input and output dataflow channels so that once values are available to be consumed in any
of the input channels the selector's body is triggered on the values, potentially generating values to be written into the output channels.
The output channels at the same time are suitable to be used as input channels by some other dataflow processors.
The channels allow processors to communicate.
Dataflow selectors and operators enable creation of highly concurrent applications yet the abstraction hides the low-level concurrency primitives
and exposes much friendlier API.
Since selectors and operators internally leverage the actor implementation, they reuse a pool of threads and so the actual number of threads
used by the calculation can be kept much lower than the actual number of processors used in the network.
Priority selectors prefer to select messages from channels with lower position index.
- Authors:
- Vaclav Pech
Date: Sep 23, 2009
Constructor Summary |
DataflowPrioritySelector(PGroup group, java.util.Map channels, groovy.lang.Closure code)
Creates a priority selector
After creation the selector needs to be started using the start() method.
|
Method Summary |
void
|
doSelect()
Ask for another select operation on the internal select instance.
|
Methods inherited from class DataflowProcessor
|
bindAllOutputValues, bindAllOutputValuesAtomically, bindAllOutputs, bindAllOutputsAtomically, bindOutput, bindOutput, getOutput, getOutputs, getOutputs, join, reportError, shouldBeMultiThreaded, start, start, stop |
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() |
DataflowPrioritySelector
DataflowPrioritySelector(PGroup group, java.util.Map channels, groovy.lang.Closure code)
- Creates a priority selector
After creation the selector needs to be started using the start() method.
- Parameters:
group
- A parallel group to use threads from in the internal actorchannels
- 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 all inputs have a value to read
doSelect
@Override
void doSelect()
- Ask for another select operation on the internal select instance.
The selector's guards are applied to the selection.
Copyright © 2008–2010 Václav Pech. All Rights Reserved.