Concurrency concepts

Concurrency is the concept of simultaneous execution of computational tasks.

See Also

actor model using coroutines
asynchronous methods
distributed computation
parallel processing
grid services

Building Blocks

continuation
message passing
semaphores
microthreads
lockfiles

Entities

In a concurrent system, autonomous or semi-autonomous entities communicate to achieve the objectives of the system. Depending on the design, and entity may be called an actor, agent, object, producer, process, or routine. Here is a list of Tcl facilities and components that can be used to implement entities.

coroutines
generators
iterators
interp
Each interpreter serves as an independent routine
processes
threads

Models and Paradigms

communicating sequential processes
A formal language for describing patterns of interaction in concurrent systems.
flow-based programming
event-driven programming

Systems in Tcl

The following Tcl systems provision concurrent routines, along with facilities for communication between them. See also message passing for a list of systems that only distribute data.

csp (package)
Daerth
Control minions of asynchronous threaded pipelined backpressure-mediated death stations.
fiber
Gotcl
pipethread

See Also

Concurrency , Wikipedia
Concurrency for grown-ups by Cameron Laird, developerWorks, 2002-08-15
Introduction to Multithreading, Superthreading and Hyperthreading , by Jon Stokes
claims to be mostly about (rather specific) hardware, in fact its readability and confident accuracy recommend it for those in search of a more general introduction to operating system-level concurrency.
Concurrency in Tcl: Events without getting Twisted , Andreas Kupries, 2010-05-06
Concurreny in Tcl: Weaving Threads , Andreas Kupries, 2010-05-10
Concurrency in Tcl: Talking Heads , Andreas Kupries, 2010-06-03

Description

Tclonians typically focus on maintainability and related development issues. For a hard-core performance perspective on concurrency, see The C10K Problem .