    [NAME]
    ALL.dao.concurrent

    [TITLE]
    Concurrent Programming

    [DESCRIPTION]

    Dao has native support for concurrent programming on multicore computers. The basic
    concurrent 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, because only active tasklets are attached to native threads for execution.

    Dao provides two main features for concurrent programming: one is the multithreading
    module mt; the other is the asynchronous class. Dao also provides communication channels
    for tasklets to communicate and synchronize with each other by channels.

    [STRUCTURE]

    dao.concurrent--| dao.concurrent: Concurrent Programming (9.5 KB)
                    |--threading----| dao.concurrent.threading: Multithreading Module (2.4 KB)
                    |--asyncall-----| dao.concurrent.asyncall: Asynchronous Function Call (0.7 KB)
                    |--asyncobject--| dao.concurrent.asyncobject: Asynchronous Object (1.6 KB)
                    |--channel------| dao.concurrent.channel: Communication Channel (4.2 KB)