10.1 什么是并发处理

    本章我们来学习并发处理。

    现在我们使用个人计算机时,可以一边听音乐,一边用文字处理软件写文章,还可以上网浏览信息。像这样,在重叠的时间段内同时进行的多个处理叫做并发处理。

    在 EDSAC 等古老的计算机上,从导入程序、计算开始直到计算结束的整个过程中,除了等待不能做其他任何事情。一个程序从开始执行到其结束的期间内,计算机只能处理这一项任务。

    为了实现便利的并发处理,出现了进程和线程的概念。另外,由于并发处理产生了一些新的问题,为应对这些问题又发明了锁和光纤等概念。本章我们来学习这些内容 1。

    1有读者经常问起并行和并列的差别,这里做个说明。《程序设计语言:概念和结构》一书提到:程序设计语言中的并行性和硬件中的并列性是相互独立的两个概念。并列性是硬件层面的表述,比如英特尔公司于 1999 年发布的 Pentium III 中的可以同时针对四个值进行运算的 SSE 命令,以及 NVIDIA 为了记录因为 GPU 带来的高并列性的处理于 2007 年发布的 CUDA 等。而本章将要讨论的是程序设计语言领域的并行性,具体来说是进程和线程的概念。