“Recent years have seen an increase in the popularity of
threads, because there are many applications in which threads are
useful. In many aspects, threads operate in the same manner as
processes, but can execute more efficiently. All modern operating
systems today include some kind of support for thread management.
Moreover, threads have been standardized by the IEEE Technical
Committee on Operating Systems. This standard allows users to write
portable multi-thread programs.”
“As with other operating systems, Linux includes multi-threading
capability, and some multi-threading libraries are available for
Linux. We will describe a comparative study of five threads
packages for Linux: CLthreads, LinuxThreads, FSU Pthreads, PC
threads and Provenzano Pthreads. All libraries evaluated make use
of POSIX-compliant functionality. The main objective of this study
is to evaluate and compare the performance of some multi-thread
features to analyze the suitability of these libraries for use in
multi-thread applications. Also, we make a comparison with Solaris
threads.”
“A thread is an independent flow of control within a
process. A traditional UNIX process has a single thread that has
sole possession of the process’ memory and other resources.
Threads within the same process share global data (global
variables, files, etc.), but each thread has its own stack, local
variables and program counter. Threads are referred to as
lightweight processes, because their context is smaller than the
context of a process. This feature makes context switches between
threads cheaper than context switches between traditional
processes.”