Thread (computer science)

related topics
{system, computer, user}
{math, number, function}
{@card@, make, design}
{car, race, vehicle}
{company, market, business}

In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. It generally results from a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources. In particular, the threads of a process share the latter's instructions (its code) and its context (the values that its variables reference at any given moment). To give an analogy, multiple threads in a process are like multiple cooks reading off the same cook book and following its instructions, not necessarily from the same page.

On a single processor, multithreading generally occurs by time-division multiplexing (as in multitasking): the processor switches between different threads. This context switching generally happens frequently enough that the user perceives the threads or tasks as running at the same time. On a multiprocessor or multi-core system, the threads or tasks will actually run at the same time, with each processor or core running a particular thread or task.

Many modern operating systems directly support both time-sliced and multiprocessor threading with a process scheduler. The kernel of an operating system allows programmers to manipulate threads via the system call interface. Some implementations are called a kernel thread, whereas a lightweight process (LWP) is a specific type of kernel thread that shares the same state and information.

Programs can have user-space threads when threading with timers, signals, or other methods to interrupt their own execution, performing a sort of ad-hoc time-slicing.

Contents

Full article ▸

related documents
Command-line interface
Error detection and correction
Anti-aliasing
DNIX
Linux kernel
Gnutella
Lossless data compression
SIMD
OpenGL
NetBSD
Plan 9 from Bell Labs
Spanning tree protocol
Very long instruction word
Subnetwork
BASIC
Hypertext Transfer Protocol
Open Shortest Path First
IBM System i
Password
XFS
Computer file
Transaction Processing Facility
MAME
MVS
Microkernel
Vector processor
Memory leak
Package management system
Simple Network Management Protocol
Trillian (software)