Redirected from Thread (computer programming)
Threads are distinguished from traditional multi-tasking processes in that processes are typically independent, carry considerable state information, and interact only through system-provided inter-process communication mechanisms. Multiple threads, on the other hand, typically share the state information of a single process, share memory and other resources directly. On operating systems that have special facilities for threads, it is typically faster for the system to context-switch between different threads in the same process than to switch between different processes.
An advantage of a multi-threaded program is that it can operate faster on machines that have multiple CPUs, or across a cluster of machines. This is because the threaded nature of the algorithms allow true simultaneous and independent processing. In such a case, the programmer needs to be careful to avoid race conditions, and other non-intuitive behaviors. In order for data to be correctly manipulated, threads will often need to rendezvous in time in order to process the data in the correct order. Threads may also require atomic operations (often implemented using semaphores) in order to prevent data from being simultaneously modified, or read while in the process of being modified. Careless use of such primitives can lead to deadlocks.
Use of threads in programming often causes a state inconsistency. A common anti-pattern is to set a global variable, then invoke subprograms that depend on its value. This is known as accumulate and fire.
See also: Thread safety
The Java programming language is an example of a computer language which supports multi-threaded programs.
A relatively new concept, introduced in Intel's Pentium 4 3.06 GHz processor, is the Intel Hyper-threading
The term "thread" is used in a completely different sense in Forth. There it means a form of code consisting entirely of subroutine calls, written without the subroutine call instruction, and processed by an interpreter.
Search Encyclopedia
|
Featured Article
|