Concurrent Programming


Dao has native support for concurrent programming on multicore computers. The basic conc
urrent computational unit in Dao is a tasklet which consists of a virtual machine process
(context) and a future value (handle). A tasklet is much cheaper than a native thread, be
cause only active tasklets are attached to native threads for execution.

Dao provides several features for concurrent programming such as: multi-threading module 
mt with parallelized code section methods, asynchronous function call, asynchronous class
and communication channels. Support for conventional multi-threaded programming is all su
pported by an external module.


dao.concurrent--| dao.concurrent: Concurrent Programming (9.6 KB)
                |--threading----| dao.concurrent.threading: Multithreading Module (2.9 KB)
                |--async-call---| dao.concurrent.async-call: Asynchronous Call (0.7 KB)
                |--async-class--| dao.concurrent.async-class: Asynchronous Class (1.7 KB)
                |--channel------| dao.concurrent.channel: Communication Channel (3.6 KB)