This chapter covers the program units, tasks and protected units, used to support concurrency and synchronization. Several additional kinds of statements, not applicable to "single thread" programs are also covered.
Earlier chapters have focused on single-thread programs involving a sequence of steps, all under the control of the main procedure. Here we consider multi-task programs involving concurrent threads of execution. Multi task programming is especially applicable to real-time embedded systems where there may be multiple sensors and actuators, each under the control of a separate task. Simulations of real-world systems also benefit from multi-task programming, where it is natural to model the concurrent activities of multiple interacting objects, each with its own thread of execution.
Ada is somewhat unique (among the popular languages) in that multi-tasking capabilities are built into the language itself. This provides advantages in reliability, readability, and portability. Ada can also handle distributed systems within a single program -- see the discussion of partitions at the end of the chapter.
[ Back to top of page ] [ continue ]