表 1–1 介绍了本书中所使用的一些术语。
表 1–1 多线程术语
术语 |
定义 |
---|---|
Process(进程) |
通过 fork(2) 系统调用创建的 UNIX 环境(如文件描述符和用户 ID 等),为运行程序而设置。 |
Thread(线程) |
在进程上下文中执行的指令序列。 |
POSIX pthread |
符合 POSIX 线程的线程接口。 |
Solaris thread(Solaris 线程) |
不符合 POSIX 线程的 Sun MicrosystemsTM 线程接口,pthread 的前序节点。 |
仅允许访问一个线程。 |
|
允许访问两个或多个线程。 |
|
在用户空间(而非内核空间)中由线程调度例程管理的线程。 |
|
用来执行内核代码和系统调用的内核线程,又称作 LWP。从 Solaris 9 开始,每个线程都有一个专用的 LWP。 |
|
指的是在 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(读写锁) |
可用于对共享数据进行多次只读访问的函数,但是要修改共享数据则必须以独占方式访问。 |
一种基于内存的同步机制。 |
|
Parallelism(并行性) |
如果至少有两个线程正在同时执行,则会出现此情况。 |
Concurrency(并发性) |
如果至少有两个线程正在进行,则会出现此情况。并发是一种更广义的并行性,其中可以包括分时这种形式的虚拟并行性。 |