Concurrency is the concept of simultaneous execution of computational tasks.
- actor model using coroutines
- asynchronous methods
- distributed computation
- parallel processing
- grid services
- message passing
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.
- Each interpreter serves as an independent routine
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)
- Control minions of asynchronous threaded pipelined backpressure-mediated death stations.
- 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
Tclonians typically focus on maintainability and related development issues. For a hard-core performance perspective on concurrency, see The C10K Problem .