Actors are independent isolated active objects, which mutually share no data and communicate solely by messages passing. The code body of each actor is executed by a random thread from a thread pool and so actors can proceed concurrently and independently.
In several programing languages, we find a concept of Agents, who behave like actors, taking coded functions as messages. After reception, the received function is run against the internal state of the Agent and the return value of the function is considered to be the new internal state of the Agent.
GPars provides several ways to run tasks in the background asynchronously.
The CSP (
Communicating Sequential Processes ) concurrency concept is a message-passing model with synchronous rendezvous-type communication.
It’s valued for its high level of determinism and the ability to compose parallel processes.
Dataflow Concurrency offers an alternative concurrency model, which is inherently safe and robust. It puts an emphasis on the data and their flow though your processes
Our code frequently needs to manipulate collections. Lists, arrays, sets, maps, iterators, strings and lot of other data types can be viewed as collections of items. The common pattern to process collections is to take elements sequentially, one-by-one, and make an action for each of the items in row.
Thanks to Groovy, a number of methods are currently supported for
Parallel Collection Processing.
On multi-core systems, we can benefit from having some tasks run asynchronously in the background, and so off-load our main thread of execution.