1. 并发(Concurrency)
并发指的是多个任务或操作在同一时间段内开始,但并不意味着它们在同一时刻同时执行。并发侧重于任务调度的能力,使得多个任务可以交错执行,从而提高系统的整体效率。在并发系统中,任务可能会因为等待资源(如CPU时间、I/O操作等)而暂停执行,并在资源可用时继续执行。
2. 并行(Parallelism)
并行则是指多个任务或操作在同一时刻同时执行。这通常要求系统具有多个处理单元(如多核CPU、GPU等),以便能够同时处理多个任务。并行处理可以显著提高计算密集型任务的执行速度。
3. 串行(Serial)
串行执行是指任务按照严格的顺序一个接一个地执行,即一个任务完成后,下一个任务才开始执行。在串行执行中,任何时刻只有一个任务在执行,因此执行速度受限于单个任务的执行时间和系统资源的可用性。
4. 同步(Synchronous)
同步是指任务或操作按照预定的顺序执行,并且后一个任务或操作必须等待前一个任务或操作完成后才能开始。在同步执行中,任务之间存在明确的依赖关系,并且这种依赖关系通过等待机制来维护。同步执行有助于保持数据的一致性和正确性,但可能会降低系统的整体效率。
5. 异步(Asynchronous)
异步执行是指任务或操作之间不按照严格的顺序执行,一个任务或操作的开始和结束不会阻塞其他任务或操作的执行。在异步执行中,任务之间通过回调、事件、Promise等机制进行通信,从而实现了非阻塞的并发执行。异步执行可以提高系统的响应性和吞吐量,但也可能增加程序设计的复杂性。
总结
- 并发和并行关注于任务执行的时间维度,前者强调任务交错执行,后者强调任务同时执行。
- 串行是任务执行的最基本方式,即按顺序执行。
- 同步和异步关注于任务之间的依赖关系和通信方式,前者要求任务按顺序执行,后者允许任务非阻塞地并发执行。