Processes and Threads An application consists of one or more
processes. A process, in the simplest terms, is an executing
program. One or more threads run in the context of the process.
A thread is the basic unit to which the operating system
allocates processor time. A thread can execute any part of the
process code, including parts currently being executed by
another thread. A job object allows groups of processes to be
managed as a unit. Job objects are namable, securable, sharable
objects that control attributes of the processes associated with
them. Operations performed on the job object affect all
processes associated with the job object. A thread pool is a
collection of worker threads that efficiently execute
asynchronous callbacks on behalf of the application. The thread
pool is primarily used to reduce the number of application
threads and provide management of the worker threads. A fiber is
a unit of execution that must be manually scheduled by the
application. Fibers run in the context of the threa