线程是指机器中连续的、顺序的属性集合。一个线程包含执行一系列机器指令所必须的机器状态,包括当前指令位置、地址和数据寄存器等。
一个UNIX进程可以理解为一个线程加上地址空间、文件描述符和其他数据。
1 术语
异步:
任何两个彼此独立运行的操作是异步的。异步表明事情相互独立地发生,除非强加的依赖性。
异步带来的最大复杂性就是:如果你没有同时执行多个活动,那么异步就没有什么优势。如果你开始了一个异步活动,然后什么也不做等待它结束,则你并没有从异步那里获得太多好处。
并发:
指让实际上可能串行发生的事情好像同时发生一样。
并行:
指并发序列同时执行。
真正的并行只能在多处理器系统中存在,但是并发可以在单处理器系统和多处理器系统中都存在。并发能够在但处理器系统中存在是因为并发实际上是并行的假象。并行要求程序能够同时执行多个操作,而并发只要求程序能够假装同时执行多个操作。
线程安全:
指代码能够被多个线程调用而不会产生灾难性结果。它不要求代码在多个线程中高效地运行,只要求能够安全地运行。大部分现行函数可以利用互斥量、条件变量和线程私有数据来实现线程的安全。
函数可重入: