In Tunes, the term for any kind of object that can be considered semantically as a logical unit of execution, from a light-weight continuation being evaluated to a number of coarse-grained unixish processes, including interrupt handling code, etc. Threads can be dynamically decomposed in sequential or parallel subthreads, that may interact more or less with each other, until the hardware level is reached, which constitutes the ultimately atomic threads. However, the system only consider as a thread what was interfaced to it as such, which sure is not the case of every single instruction, in the same way as it accepts any object from the world to a single bit as an object, but not every single bit is fully interfaced as a first-class system entity.

The standard model for computing is to consider a computer as a sequential machine (which single-CPU computers actually are). Parallelism is then modeled (and simulated/faked inside sequential computers) as multiple sequential machines interacting; each virtual sequential machine is named a thread of execution.

In traditional OSes, the term thread denotes a light, user-rewritten version of the OS's processes.

When programmers see that their OS's process concept is too bulky, that their OS's scheduler introduces too much overhead, that they need a potentially high number of asynchronous procedures that share data quickly and don't overflow the "process table" or do numerous system calls, they use thread packages to cope with it. Thread packages are insecure dirty (but sometimes necessary) hacks.

This page is linked from: Actor   highly concurrent