Difference between revisions of "Thread"
m |
|||
Line 5: | Line 5: | ||
Multiple threads can be executed in parallel on many computer systems. This ''multithreading'' generally occurs by time slicing, wherein a single processor [[w:context switch|switches]] between different threads, in which case the processing is not literally simultaneous, for the single processor is only really doing one thing at a time. This switching can happen so fast as to give the illusion of simultaneity to an end user. For instance, a typical PC today contains only one processor core, but you can run multiple programs at once, such as a word processor alongside an audio playback program; though the user experiences these things as simultaneous, in truth, the processor is quickly switching back and forth between these separate processes. On a multiprocessor or multi-core system, threading can be achieved via [[w:multiprocessing|multiprocessing]], wherein different threads and processes can run literally simultaneously on different processors or cores. | Multiple threads can be executed in parallel on many computer systems. This ''multithreading'' generally occurs by time slicing, wherein a single processor [[w:context switch|switches]] between different threads, in which case the processing is not literally simultaneous, for the single processor is only really doing one thing at a time. This switching can happen so fast as to give the illusion of simultaneity to an end user. For instance, a typical PC today contains only one processor core, but you can run multiple programs at once, such as a word processor alongside an audio playback program; though the user experiences these things as simultaneous, in truth, the processor is quickly switching back and forth between these separate processes. On a multiprocessor or multi-core system, threading can be achieved via [[w:multiprocessing|multiprocessing]], wherein different threads and processes can run literally simultaneously on different processors or cores. | ||
− | Many modern | + | Many modern operating systems directly support both time-sliced and multiprocessor threading with a process [[w:scheduler|scheduler]]. The operating system kernel allows programmers to manipulate threads via the system call interface. Some implementations are called a ''kernel thread'', whereas a ''lightweight process'' is a specific type of ''kernel thread'' that shares the same state and information. |
= Nodal = | = Nodal = | ||
In the [[nodal model]], the multithreading time-slicing is achieved by [[w:Time-division multiplexing|Time-division multiplexing]] using the [[nodal reduction]] algorithm. [[Loop]]s are threads are formed from [[nodeNEXT|next]] and [[nodePREV|prev]] [[association]]s and a [[focus]] association allows the formation of trees of loops and threads. | In the [[nodal model]], the multithreading time-slicing is achieved by [[w:Time-division multiplexing|Time-division multiplexing]] using the [[nodal reduction]] algorithm. [[Loop]]s are threads are formed from [[nodeNEXT|next]] and [[nodePREV|prev]] [[association]]s and a [[focus]] association allows the formation of trees of loops and threads. |
Revision as of 02:04, 11 December 2006
General
Threads of execution are a way for a program to split itself into two or more simultaneously (or pseudo-simultaneously) running tasks. Threads and processes differ from one operating system to another, but in general, the way that a thread is created and shares its resources is different from the way a process does.
Multiple threads can be executed in parallel on many computer systems. This multithreading generally occurs by time slicing, wherein a single processor switches between different threads, in which case the processing is not literally simultaneous, for the single processor is only really doing one thing at a time. This switching can happen so fast as to give the illusion of simultaneity to an end user. For instance, a typical PC today contains only one processor core, but you can run multiple programs at once, such as a word processor alongside an audio playback program; though the user experiences these things as simultaneous, in truth, the processor is quickly switching back and forth between these separate processes. On a multiprocessor or multi-core system, threading can be achieved via multiprocessing, wherein different threads and processes can run literally simultaneously on different processors or cores.
Many modern operating systems directly support both time-sliced and multiprocessor threading with a process scheduler. The operating system kernel allows programmers to manipulate threads via the system call interface. Some implementations are called a kernel thread, whereas a lightweight process is a specific type of kernel thread that shares the same state and information.
Nodal
In the nodal model, the multithreading time-slicing is achieved by Time-division multiplexing using the nodal reduction algorithm. Loops are threads are formed from next and prev associations and a focus association allows the formation of trees of loops and threads.