Java 并行与并发
注意两个词:并行(Concurrent) 并发(Parallel)
并行:是逻辑上同时发生,指在某一个时间内同时运行多个程序
并发:是物理上同时发生,指在某一个时间点同时运行多个程序 在基于场景描述中,可以这样说:
1、多线程是并发执行的;
2、多核CPU是并行执行的,单个CPU不可以并行执行的;但是这样说可能会混淆概念
在网络上查找到如下定义:
并发:在操作系统中,在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行,也就是说微观上任一个时刻点上只有一个程序在处理机上运行)
并行:在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。
两者的区别:并发是同时处理很多的事情,并行是同时做很多的事情