Message-ID: <1945597641.25273.1417085423659.JavaMail.firstname.lastname@example.org> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_25272_1994527152.1417085423658" ------=_Part_25272_1994527152.1417085423658 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Communicating Sequenti= al Processes (CSP) provides a formal concurrency model consisting of sy= nchronously communicating independent processes. The model offers determini= stic behavior plus it allows developers to combine the processes into compo= sable and reusable components.
Processes, in GPars called Tasks, are concurrently run independent activ= ities, which communicate by sending data through (typically synchronous) ch= annels.
GPars Tasks represent active computations. Indirect addressing through c= hannels gives you an enormous flexibility in how and when you wire tasks to= gether. The concept of Promises allows tasks to easily signal even= ts or values to other parts of your program in a thread-safe manner. CSP pr= ogramms are highly deterministic, which is a very useful quality of concurr= ent programms.
Tasks can be easily combined with other GPars concepts - with Agents= to ease shared-state management or with Dataflow Operators to process= streamed data.
For further details, please refer to the Groovy CS= P section of the User Guide.