Normal multi-threaded applications should not need these the
predicates from this section because almost any usage of these
predicates is unsafe. For example checking the existence of a thread
before signalling it is of no use as it may vanish between the two
calls. Catching exceptions using catch/3
is the only safe way to deal with thread-existence errors.
These predicates are provided for diagnosis and monitoring tasks. See
also section 8.5, describing more
True if thread Id has Property. Either or both
arguments may be unbound, enumerating all relations on backtracking.
does not influence any thread. See also
For threads that have an alias-name, this name is returned in Id
instead of the numerical thread identifier. Defined properties are:
Alias is the alias name of thread Id.
Current detached status of the thread.
Current status of the thread. Status is one of:
The thread is running. This is the initial status of a thread. Please
note that threads waiting for something are considered running too.
The Goal of the thread has been completed and failed.
The Goal of the thread has been completed and succeeded.
The Goal of the thread has been terminated using thread_exit/1
with Term as argument. If the underlying native thread has
exited (using pthread_exit()) Term is unbound.
The Goal of the thread has been terminated due to an uncaught
exception (see throw/1
Obtains statistical information on thread Id as statistics/2
does in single-threaded applications. This call supports all keys of statistics/2,
although only stack sizes and CPU time yield different values for each
thread.75Getting the CPU-time of a
specific thread is not supported on all platforms. On some platforms it
returns total process CPU time instead of the thread CPU time. Thread
CPU time is supported on MS-Windows and most recent Linux versions.
Print usage statistics on internal mutexes and mutexes associated with
dynamic predicates. For each mutex two numbers are printed: the number
of times the mutex was acquired and the number of collisions:
the number times the calling thread has to wait for the mutex. The
collision-count is not available on MS-Windows. Generally collision
count is close to zero on single-CPU hardware.