(Quick Reference)
ConceptsDataflow ConcurrencyDataflow concurrency offers an alternative concurrency model, which is inherently safe and robust. It puts emphasis on the data and their flow though your processes instead of the actual processes that manipulate the data. Dataflow algorithms relieve developers from dealing with live-locks, race-conditions and make dead-locks deterministic and thus 100% reproducible. If you don't get dead-locks in tests you won't get them in production.Dataflow VariableA single-assignment multi-read variable offering a thread-safe data-exchange among threads.Dataflows classA virtual infinite map of Dataflow Variables with on-demand creation policy.Dataflow StreamA thread-safe unbound deterministic blocking stream with a Dataflow Variable-compatible interface.Dataflow QueueA thread-safe unbound blocking queue with a Dataflow Variable-compatible interface.Dataflow TaskA lightweight thread of execution, which gets assigned a physical thread from a thread pool to execute the body of the task. Tasks should typically exchange data using Dataflow Variables and Streams.Dataflow OperatorA corner stone of a more thorough dataflow concurrency algorithms. Such algorithms typically define a number of operators and connect them with channels, represented by Dataflow Streams, Queues or Variables. Each operator specifies its input and output channels to communicate with other operators. Repeatedly, whenever all input channels of a particular operator contain data the operator's body is executed and the produced output is sent into the output channels. |