13-并发性、并行性和竞争
7.5 并发性、并行性和竞争
线程引入了两个相关但截然不同的概念:并发性(Concurrency)和并行性(Parallelism)。两者都是有好有坏,带来了线程代价及其收益。并发性是指两个或多个线程可以在重叠的时间周期内执行。并行性是指可以同时运行两个或两个以上的线程。并发不一定是并行:比如在单处理器系统上的多任务机制。并行性(有时出于强调,称为真正并行性true Parallelism)是一种特殊的并发,它需要多个处理器(或者支持多个执行引擎的单处理器,如GPU)。如果不是并发,多个线程都执行处理,但不一定是同时的。对于并行性,线程实际上是并行执行的,多线程的程序可以利用多个处理器。
并发性是一种编程模式,是处理问题的一种方式。并行性是一种硬件特征,可以通过并发性实现。两者都是有用的。