multithreading

<parallel> A program execution environment that interleaves instructions from multiple independent execution "threads". This differs from multitasking in that threads (or "light-weight processes") typically share more of their environment with each other than do tasks under multitasking. Threads may be distinguished only by the value of their program counters and stack pointers while sharing a single address space and set of global variables. This means that threads may be switched extemely quickly because there is very little state to save and restore.

Multithreading can thus be used for very fine-grain concurrency, at the level of a few instructions, and so can hide latency by keeping the processor busy after one thread issues a long-latency instruction on which subsequent instructions in that thread depend.

TL0 is an example of a threaded machine language. Dataflow computation (E.g. Id and SISAL) is an extreme form of multithreading.

(09 Feb 1995)