并发:
并发指的是多个任务交替执行的能力,这些任务可能不是同时执行,而是通过快速切换在不同任务之间来实现“同时执行”的效果。在多核处理器上,多个线程可以真正同时执行,而在单核处理器上,线程之间通过时间片轮转实现并发。
所以当谈论并发的时候一定要加个单位时间,也就是说单位时间内并发量是多少?离开了单位时间其实是没有意义的。
并行:
并行指的是多个任务同时执行的能力,每个任务都在独立的CPU上执行。并行通常用于同时处理独立任务,这些任务可以同时执行,而不需要相互等待或协同工作。
两者区别:
关键区别在于并发强调任务在时间上交替执行,而并行强调任务在不同处理单元上同时执行。在实际应用中,可以将并发和并行结合使用,以提高系统的性能和响应速度。例如,可以使用并发来管理多个请求的同时处理,然后在每个请求内部使用并行来加速计算任务。