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 will hopefully be corrected at a later date.