Thread: Difference between revisions

m
Stupid case sensitivity, changed a link
(more detail)
m (Stupid case sensitivity, changed a link)
Line 1:
[[Category:Encyclopedia]]A '''thread''' is a particular flow of control within a process. A thread shares the address space with other threads in the same process, but each thread gets its own call stack and set of registers. Switching between threads within a process is a much lighter-weight operation than switching between processes. Threads can by ''native'' (provided by the [[:Category:Operating Systems|operating system]]) or ''green'' (an abstraction provided solely by the language or threading library). [[Erlang]] and [[Forth]] provide their own threading mechanisms, and [[Java]] VMs can often be configured to use either native or green threading.
 
Programs can be "multi-threaded", where certain parts of the programs will compete for [[:Category:Operating Systems|system]] resources. Threads are useful for servers, where each client connecting to a server will "spawn" a new thread for its own operations. A program can also run multiple operations concurrently, also known as [[Fork Process|forking a process]]. With single-core processors, multi-threading does not usually provide much of an advantage, but with multiple cores, a computer can run the threads concurrently and do multiple programs' work at once.
 
One of the best known threading abstractions is '''[[POSIX]] threads''' (pthreads), which are widely used on [[UnixUNIX]]-like systems.
 
==See also==
Anonymous user