Go to main content

Multithreaded Programming Guide

Exit Print View

Updated: November 2020
 
 

Multithreading Terms

The following list introduces some of the terms that are used in this book.

Attribute object

Contains opaque data types and related manipulation functions. These data types and functions standardize some of the configurable aspects of POSIX threads, mutual exclusion locks (mutexes), and condition variables.

Concurrency

A condition that exists when at least two threads are making progress. A more generalized form of parallelism that can include time-slicing as a form of virtual parallelism.

Condition variables

Objects used to block threads until a change of state.

Counting semaphore

A memory-based synchronization mechanism in which a non-negative integer count is used to coordinate access by multiple threads to shared resources.

Lightweight processes

Kernel threads, also called LWPs, that execute kernel code and system calls. LWPs are managed by the system thread scheduler, and cannot be directly controlled by the application programmer. Beginning with Solaris 9, every user-level thread has a dedicated LWP. This is known as a 1:1 thread model.

Multithreading

Allows access to two or more threads. Execution occurs in more than one thread of control, using parallel or concurrent processing.

Mutual exclusion locks

Objects used to lock and unlock access to shared data. Such objects are also known as mutexes.

Oracle Solaris threads

An Oracle Solaris threads interface that is not POSIX threads compliant. A predecessor of pthreads.

Parallelism

A condition that arises when at least two threads are executing simultaneously.

POSIX pthreads

A threads interface that is POSIX threads compliant. See Oracle Solaris Multithreading Libraries and Standards for more information.

Process

The UNIX environment, such as file descriptors, user ID, and so on, created with the fork(2) system call, which is set up to run a program.

Read-write locks

Objects used to allow multiple read-only access to shared data, but exclusive access for modification of that data.

Single-threaded

Restricts access to a single thread. Execution is through sequential processing, limited to one thread of control.

Thread

A sequence of instructions executed within the context of a process.

User-level or application-level threads

Threads managed by threads routines in user space, as opposed to kernel space. The POSIX pthreads are used to create and handle user threads. In this guide, and in general, a thread is a user-level thread.


Note -  Because this guide is for application programmers, kernel thread programming is not discussed.