并发和并行

来源:互联网 发布:闵行区拆违数据 编辑:程序博客网 时间:2024/04/30 02:47

并发和并行

并发和并行从宏观来看,都是为进行多任务运行,但并发(Concurrency)和并行(parallelism)两者之间是有区别的

并发

并发是指两个或两个以上的任务在同一时间段内运行,即一个时间段中有几个任务都处于已启动运行到运行完毕之间,这若干任务在同一CPU上运行但任一个时刻点上只有一个任务运行。
eg:A进程的线程1和A进程的线程2在同一个核上,在同一时候只能运行一个,但在一段时间内都可以运行。

并行

并行是指两个或者两个以上任务在同一时刻同时运行
eg:A进程的线程1和B进程的线程1同时刻在不同核上运行

示例图

图给出了多核处理器下的现代操作系统进程和线程模型,图中进程2的线程1被调用度到处理器的核2上运行、进程3的线程1被调度到处理器的核3上运行,进程2的线程1和进程3的线程1是并行的,它们可以同时运行,而进程1的线程1和线程2都调度到处理器的核1上运行,此外它们还共享线程1的内存空间,在运行时面临着资源竞争包括CPU、内存及其它如IO等,它们在同一时候只能运行一个,但在一段时间内都可以运行,因此进程1的线程1和线程2是并发执行的。
并发与并行

0 0
原创粉丝点击