A
ThreadId is an abstract type representing a handle to a
thread.
ThreadId is an instance of
Eq,
Ord and
Show, where the
Ord instance implements an arbitrary
total ordering over
ThreadIds. The
Show instance lets
you convert an arbitrary-valued
ThreadId to string form;
showing a
ThreadId value is occasionally useful when debugging
or diagnosing the behaviour of a concurrent program.
Note: in GHC, if you have a
ThreadId, you essentially
have a pointer to the thread itself. This means the thread itself
can't be garbage collected until you drop the
ThreadId. This
misfeature would be difficult to correct while continuing to support
threadStatus.