POSIX多线程程序设计(一)
几个重要概念
-
异步(asynchronous)
:任何两个彼此独立运行的操作是异步的.异步表明事情相互独立地发生,除非有强加的依赖性.-
并发(concurrency)
:指事情同时发生.-
单处理器(uniprocessor)
:指一台计算机只有一个编程人员可见的执行单元(处理器)-
多处理器(multiprocessor)
:一台计算机拥有多个处理器,它们共享同一个指令集和相同的物理内存。-
并行(parallelism)
:指并发序列同时自执行-
线程安全
:指代码能够被多个线程调用而不会产生灾难性结果(保护手段:临界区、互斥量、条件变量和线程私有数据等)-
执行环境
:指并发实体的状态-
调度
:决定在某个给定时刻该执行哪个环境(或环境组),并在不同的环境中切换-
同步
:为并发执行的环境提供了协调访问共享资源的一种机制。同步本指“同时发生”,这里指“阻止同时发生”,同步的同义词:协调–同步就是让线程协调地完成工作的机制。-
线程
:计算机中的可执行单元-
互斥量
:阻止线程间发生不可预期的冲突。-
条件变量
:线程间发生冲突,条件变量让线程等待直到可以安全地执行。
互斥量和条件变量都是用来同步线程间操作的。
线程是进程里足以执行代码的部分。在大多数系统中,线程包括:当前指令位置指针(通常称为计数器或PC)、栈顶指针(SP)、通用寄存器、浮点或地址寄存器。线程还可能包括像处理器状态和协处理器寄存器等数据。线程不包括进程中的其它数据,如地址空间和文件描述符。一个进程的所有线程共享文件和内存空间,包括程序文件段和数据段。
线程比进程简单
可以将线程理解为一种减负的进程。系统在线程间切换比在进程间切换要快得多,这很大程度上得益于线程间共享地址人空间(包括代码段、数据段和堆栈)。