multithreading


Also found in: Dictionary, Thesaurus, Medical, Legal, Financial, Wikipedia.

multithreading

[¦məl·tə′thred·iŋ]
(computer science)
A processing technique that allows two or more of the same type of transaction to be carried out simultaneously.

multithreading

(parallel)
Sharing a single CPU between multiple tasks (or "threads") in a way designed to minimise the time required to switch threads. This is accomplished by sharing as much as possible of the program execution environment between the different threads so that very little state needs to be saved and restored when changing thread.

Multithreading differs from multitasking in that threads share more of their environment with each other than do tasks under multitasking. Threads may be distinguished only by the value of their program counters and stack pointers while sharing a single address space and set of global variables. There is thus very little protection of one thread from another, in contrast to multitasking.

Multithreading can thus be used for very fine-grain multitasking, at the level of a few instructions, and so can hide latency by keeping the processor busy after one thread issues a long-latency instruction on which subsequent instructions in that thread depend.

A light-weight process is somewhere between a thread and a full process.

TL0 is an example of a threaded machine language. Dataflow computation (E.g. Id and SISAL) is an extreme form of multithreading.

multithreading

A feature within a CPU that allows two or more instruction streams (threads) to execute concurrently. Each stream is a "subprocess" that is managed by the CPU and operating system. Today's CPUs support a large number of threads. For example, IBM's POWER8 CPU comes with up to 12 cores, and each core handles eight threads for a total of 96 threads.

Operating systems are written to use multithreading wherever possible; however, applications can also be written to take advantage of this parallel processing. If the application is very complex, the effort can be formidable even for experienced programmers. See SMP, re-entrant code, multicore, multiprocessing and hyperthreading.


Threads Galore
The cover of Software Development Times in November 2012 highlighted the issue that CPUs with many cores provide even more threads for the programmer.
References in periodicals archive ?
The extremely positive response that these systems have received from both customers and partners alike reinforces our belief in the importance of Chip Multithreading to achieve exponential performance gains," said David Yen, executive vice president, Scalable Systems Group, Sun Microsystems.
Users who wish to put the power of PCs in mission-critical, real- time industrial control applications now have the advantages of Windows NT's multitasking, multithreading, and 32-bit processing, together with an industrial automation package that represents 10 man-years of software development and experience," said Steve Rubin, founder and president of Intellution.
This guide demonstrates how to create dialog boxes, main windows, and custom widgets for a spreadsheet application, describes several of Qt's classes and APIs, and explains the intricacies of internationalization and multithreading.
It has several additional performance features, such as the Veritas Fast Journaling System and improved CPU handling and multithreading.
The AGEIA PhysX SDK is highly recognized for its extensive physics functionality and multithreading capabilities, which are uniquely suited for the multicore architecture of the Cell processor adopted on PLAYSTATION(R)3.
Along with a strong introduction to C#, including syntax fundamentals, working with variables, console input and output, and common intermediate language and ILSASM, Michaelis describes data strings, operators and control flow, methods and parameters, classes, inheritance, interfaces, value types, well-formed types, exception handling, generics, collections, delegates and events, reflections and attributes, multithreading, multithreading patterns, platform interoperability and unsafe code, and the common language infrastructure.
It has significant features -- such as multithreading, multiprocessor support, and networking -- that are integral to the development and distribution of mission-critical applications on a wide range of PCs and advanced workstations.
It is the ideal debugger for applications that use multithreading, dual and multi-core architectures, MPI, or OpenMP, offering advanced features, such as heap allocation debugging, extensive data analysis, easy viewing of standard template library data, and a vast array of unique capabilities to find and eliminate problems in complex applications.