highly concurrent

A term for a program or system whose software is designed to execute as a relatively large number of threads, so as to interact more efficiently with the outside environment (the user, I/O devices, other software or system components).

Nota bene: the term Actor paradigm is well established for this model of programming, so we discourage the use of this composite term.

Software which has to interact with external agencies typically uses some kind of handshaking technique to synchronise its operation with them. If its must deal with many external agencies (rather than just one or two) concurrently, it is likely that this will cause a significant amount of waiting among some of the agencies (while the program interacts with others). This might be a cause of significant inefficiency.

By writing (or rewriting) a program to have many threads, it may be possible to interact with more (or all) of these agencies (more) concurrently, and reduce the inefficiency. Highly concurrent software takes this technique to its (reasonable) limit.

A simple example is a 'web browser' program. Many such programs are able to display a partially downloaded web page in parallel with downloading the page (or parts of it, such as pictures). This generally increases the efficiency of interaction with the user, because the user sees something earlier, and can therefore make decisions (such as going back or following a hyperlink) quicker.

Synonymous terms: highly parallel; highly multithreaded; highly multitasking.

This page is linked from: AdaOS