|
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) |
|