解释一:并行是指两个或者几个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生
解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件
解释三:并行是在多台处理器上同时处理多个任务,并发是在一台处理器上"同时"处理多个任务。
并发编程充分的利用处理器的每一核,以达到最高的处理性能。
实际上,当程序中写下多进程或多线程代码时,这意味着的是并发而不是并行。并发是因为多进程/多线程都是需要去完成的任务,不并行是因为并行与否由操作系统的调度器决定,可能会让多个进程/线程被调度到同一个CPU核心上。只不过调度算法会尽量让不同进程/线程使用不同的CPU核心,所以在实际使用中几乎总是会并行,但却不能以100%的角度去保证会并行。也就是说,并行与否程序员无法控制,只能让操作系统决定。
再次注明,并发是一种现象,之所以能有这种现象的存在,和CPU的多少无关,而是和进程调度以及上下文切换有关的。