Today's operating systems strive to make the most efficient use of a computer's resources. Most of this efficiency is gained by sharing the machine's resources among several tasks (multi-tasking). This "large-grained" resource sharing is enabled by all operating systems without any additional information from the applications themselves. Newer operating systems, however, also provide mechanisms that allow the application to control and share machine resources at a finer degree of granularity (threads). This document discusses how the use of threads can improve application performance, responsiveness, and throughput. It also presents a methodology that enables a developer to thread a serial application. Like most programming techniques, the primary goal of threading is to allow the user to take the best advantage of the system resources.
This white paper contains several references to the Intel® Pentium® 4 processor. When used in conjunction with Hyper-Threading Technology, the correct terminology is the Intel® Pentium® 4 Processor with HT Technology¹.
¹ Hyper-Threading Technology requires a computer system with an Intel® Pentium® 4 processor at 3.06 GHz or higher, a chipset and BIOS that utilize this technology, and an operating system that includes optimizations for this technology. Performance will vary depending on the specific hardware and software you use. See http://www.intel.com/technology/platform-technology/hyper-threading/ for information.