Threads are key technology in the further development of Linux and Unix. The programming model
facilitated with the use of threads benefits both client and server programs. Programs like
Netscape Navigator are a testimony to the power of multithreaded programming using POSIX threads.
Threads provide a more natural programming model for application with concurrency requirements.
What's New
- Pthreads is incorporated into
CAE Specification System Interfaces & Headers Issue 5 (XSH5), part of the
Single UNIX Specification, Version 2.
XSH5 adds the following extensions:
- the ability to set and get level of thread concurrency, this is an efficiency
issue which can lead to better program performance.
- implements reader/writer locks, allows simultaneous read-only access to
data, which is very useful.
- extended mutex attribute types.
- extended mutex locking.
- extended scheduling policies.
- set guard size for stacks.
Description
-
The family consists of three subgroups:
- "Real" POSIX threads, based on the IEEE POSIX 1003.1c-1995 (also
known as the ISO/IEC 9945-1:1996) standard, part of the ANSI/IEEE
1003.1, 1996 edition, standard. POSIX implementations
are, not surprisingly, the emerging standard on Unix systems.
- POSIX threads are usually referred to as Pthreads.
- You will
often see POSIX threads referred to as POSIX.1c threads, since 1003.1c is
the section of the POSIX standard that deals with threads.
- You may
also see references to draft 10 of POSIX.1c, which became the
standard.
- DCE threads are based on draft 4 (an early draft) of the POSIX
threads standard (which was originally named 1003.4a, and became
1003.1c upon standardisation). You may find these on some Unix
implementations.
- Unix International (UI) threads, also known as Solaris threads,
are based on the Unix International threads standard (a close relative
of the POSIX standard). The only major Unix variants that support UI
threads are Solaris 2, from Sun, and UnixWare 2, from SCO.
- Both DCE and UI threads are fairly compatible with the POSIX threads
standard, although converting from either to "real" POSIX threads will
require a moderate amount of work.
- Those few tardy Unix vendors who do not yet ship POSIX threads
implementations are expected to do so "real soon now". If you are
developing multithreaded applications from scratch on Unix, you would
do well to use POSIX threads.
When To Use POSIX Threads
- If there is a need for a high degree of concurrency in a process, threads provide
a natural model for application architecture
- Check the comp.programming.threads newsgroup FAQ
or it might be here also.
- Need more here . . .
Implementations of POSIX Threads
Programming POSIX Threads
Books On POSIX Threads
- Many good books are available on POSIX Threads.
- Check out the books and tutorials page
for references and descriptions.
The POSIX Threads Standard
- To order ISO/IEC standard 9945-1:1996, which is also known as
ANSI/IEEE POSIX 1003.1-1995 (and includes 1003.1c, the part that deals
with threads), you can call +1-908-981-1393. The document reference
number in the IEEE publications catalogue is SH 94352-NYF, and
the price to US customers is $120 (shipping overseas costs extra).
- Unless you are implementing a POSIX threads package, you should not
ever need to look at the POSIX threads standard. It is the last place
you should look if you wish to learn about threads!
- Neither IEEE nor ISO makes standards available for free; please do not
ask whether the POSIX threads standard is available on the Web. It
isn't.
Freely-available POSIX Threads Packages
|