Representation
A thread is represented by the following components:
- A handle by which the thread can be referenced. Multiple handles
may reference the same thread.
- The core thread which contains the information necessary for
execution, in particular the executed function f and the function
arguments a.
- An optional thread stack which represents the space on which
local variables are allocated during execution of the thread.
A core thread without stack is called lazy (or virtual). Before a
lazy thread can be executed it has to be activated i.e. a stack has to
be allocated on which the thread can operate. Since the thread stack is an
order of magnitude larger than the core thread, threads are typically kept in
a lazy state as long as possible in order to reduce the memory consumption of
a program.
Note: The thread representation is a special case of the
representation of pointer objects .
Author: Wolfgang Schreiner
Last Modification: April 12, 1997