Overview#Thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the Operating System or an Application.
Thread is a locus of control inside a running Application. Think of it as a place in the Application that is being run, plus the stack of method calls that led to that place to which it will be necessary to return through.
Just as a process represents a Virtual Machine, the Thread abstraction represents a virtual CPU. Making a new thread simulates making a fresh processor inside the Virtual Machine represented by the process. This new virtual CPU runs the same program and shares the same memory as other threads in process.
- processes are typically independent, while threads exist as subsets of a Processes
- processes carry considerably more state information than threads, whereas multiple threads within a process share process state as well as memory and other resources
- processes have separate address spaces, whereas threads share their address space
- processes interact only through Operating System-provided Inter-Process Communication (IPC) mechanisms
- context switching between threads in the same process is typically faster than context switching between processes.
More Information#There might be more information for this subject on one of the following:
- Asynchronous Outbound Synchronization
- Change Cache
- Idle thread
- Light-Weight Process
- MSFT Access Token
- NDS Thread Pool
- NDS Threads
- Ndsconfig Parameters
- Password Flow From Active Directory to eDirectory
- Ready task
- Thread delay
- Thread pool
- Time slicing
- User mode and Kernel mode
- Waiting task
- Worker thread