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


(computer science)
A processing technique that allows two or more of the same type of transaction to be carried out simultaneously.


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.


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 ?
Modelling an architecture for the multithreading by using protothreads instead of threads;
The rest of this paper is organized as follows: Section 2 presents sensors' architectures and OS; Section 3 formulates the problem of using multithreading in WSN, and provides the performance analysis of data delivery and the energy consumption; in Section 4, the design goals and the description of the MMEDD are given; an experimental validation of our architecture is provided in Section 5; conclusion and directions for future work are presented in Section 6.
The architecture allows us to achieve the performance advantages of simultaneous multithreading, while keeping intact the design and single-thread peak performance of the dynamically scheduled CPU core present in modern superscalar architectures.
A user-level threads package could be used to execute more than i thread, but without hardware support for multithreading, context switch overhead would overwhelm the performance benefits of software multithreading.
The benefits of multithreading include improvements in CPU utilization, system reliability, user interface response, and performance, along with, of course, the ability to take advantage of multiprocessor PCs and workstations.