多线程编程指南

定义多线程术语

表 1–1 介绍了本书中所使用的一些术语。

表 1–1 多线程术语

术语

定义

Process(进程) 

通过 fork(2) 系统调用创建的 UNIX 环境(如文件描述符和用户 ID 等),为运行程序而设置。

Thread(线程)  

在进程上下文中执行的指令序列。 

POSIX pthread  

符合 POSIX 线程的线程接口。 

Solaris thread(Solaris 线程) 

不符合 POSIX 线程的 Sun MicrosystemsTM 线程接口,pthread 的前序节点。

single-threaded(单线程)

仅允许访问一个线程。 

Multithreading(多线程)

允许访问两个或多个线程。 

User-level or Application-level thread(用户级线程或应用程序级线程)

在用户空间(而非内核空间)中由线程调度例程管理的线程。 

Lightweight process(轻量进程)

用来执行内核代码和系统调用的内核线程,又称作 LWP。从 Solaris 9 开始,每个线程都有一个专用的 LWP。 

Bound thread(绑定线程)(过时的术语)

指的是在 Solaris 9 之前,和一个 LWP 永久绑定的用户级线程。从 Solaris 9 开始,每个线程都有一个专用的 LWP。 

Unbound thread(非绑定线程)(过时的术语) 

指的是在 Solaris 9 之前,无须和一个 LWP 绑定的用户级线程。从 Solaris 9 开始,每个线程都有一个专用的 LWP。 

Attribute object(属性对象) 

包含不透明数据类型和相关处理函数。这些数据类型和函数可以对 POSIX 线程一些可配置的方面,例如互斥锁 (mutex) 和条件变量,进行标准化。 

Mutual exclusion lock(互斥锁) 

用来锁定和解除锁定对共享数据访问的函数。 

Condition variable(条件变量) 

用来阻塞线程直到状态发生变化的函数。 

Read-write lock(读写锁) 

可用于对共享数据进行多次只读访问的函数,但是要修改共享数据则必须以独占方式访问。 

Counting semaphore(计数信号量)

一种基于内存的同步机制。 

Parallelism(并行性) 

如果至少有两个线程正在同时执行,则会出现此情况。

Concurrency(并发性) 

如果至少有两个线程正在进行,则会出现此情况。并发是一种更广义的并行性,其中可以包括分时这种形式的虚拟并行性。