Threads and Concurrency
These terms refer to the concurrency aspects of threading:
Thread, or thread-of-control—A sequence of instructions that can be executed on a processor. A thread is associated with, or possesses, an execution context, typically consisting of a program counter and a private stack.
Process—A program that is loaded into memory and is prepared for execution. Each process has its own private address space, and starts with a single thread. Many system resources, such as file handles and network connections, are allocated and bound on a per process basis. All threads within a process share the private address space and system resources of that process.
Concurrent—Two or more threads in one or more processes that are in progress
at the same time. A single processor system can support concurrency by switching execution between two or more threads. A multi-processor system can support parallel concurrency by executing a separate thread on each processor.
Multithreaded—A class, library, or application that uses two or more threads in one or more processes for some period during its execution.
Multithread-hot or MT-hot—A class, library, or application that creates
additional threads to accomplish its task. Labeling something as MT-hot is a warning that inclusion of a such a class or library into a product can require that the class or library-user use multithread protection or synchronization within other portions of the product. The Threading package creates no threads of its own and is therefore not considered an MT-hot product.