目录
并发、并行和串行是描述计算机系统中任务执行方式的三个基本概念,它们在不同的场景和需求下发挥着各自的作用。
关于并行、并发、串行的理解
并行:占用的不同执行空间,执行时间上是重叠的,两个任务在同一时刻互不干扰的同时执行。
串行:执行时间上不会重叠,前一个任务没执行完,下一个任务就只能等着。
并发:任务共用一块空间资源,同一时间只能执行一个任务,多个任务交替执行。
并发(Concurrency)
并发指的是多个任务在同一时间段内开始,但它们并不一定是同时进行的。在操作系统中,并发通常意味着在一个时间段内,有几个程序都处于已启动运行到运行完毕之间的状态,且这些程序都在同一个处理机上运行。然而,在任何一个时刻点上,只有一个程序在处理机上实际运行。这是通过不断切换需要运行的线程来实现的,从而让多个线程看起来是同时运行的。并发在单处理器和多处理器系统中都可以实现,它主要侧重于提高系统的吞吐量和资源利用率。
并行(Parallel)
并行则是指两个或多个事件在同一时刻发生,即真正意义上的同时执行。在操作系统中,并行意味着一组程序按独立异步的速度执行,无论是从微观还是宏观的角度,这些程序都是一起执行的。并行主要依赖于多个处理器或多核处理器系统,可以充分发挥多个处理单元的性能优势,从而提高系统的整体性能。