【碎片概念】并发与并行的区分



回答一

对于并发与并行, 在作者李运华的回答中其是这样描述的:
并发(Concurrency): Multiple tasks makes progress at the same time.
并发根据因为意思来看就是多个任务在同一时间创建了相关的进程.
来源于知乎回答

并行(Parallelism): Each task is broken into subtasks which can be processed in parallel.
并行则是将每个任务分成了多个可以同时执行的子任务.
来源于知乎回答

回答二

另一个作者 Limbo则是引用了《并发的艺术》 当中对于两者的描述, 并做了一个总结
如果某个系统支持两个或者多个动作(Action)同时存在,那么这个系统就是一个并发系统
如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统
并发系统与并行系统这两个定义之间的关键差异在于“存在”这个词。

并发程序中可以同时拥有两个或者多个线程。这意味着,如果程序在单核处理器上运行,那么这两个线程将交替地换入或者换出内存。这些线程是同时“存在”的——每个线程都处于执行过程中的某个状态。如果程序能够并行执行,那么就一定是运行在多核处理器上。此时,程序中的每个线程都将分配到一个独立的处理器核上,因此可以同时运行。
我相信你已经能够得出结论——“并行”概念是“并发”概念的一个子集。也就是说,你可以编写一个拥有多个线程或者进程的并发程序,但如果没有多核处理器来执行这个程序,那么就不能以并行方式来运行代码。因此,凡是在求解单个问题时涉及多个执行流程的编程模式或者执行行为,都属于并发编程的范畴。摘自:《并发的艺术》

回答三

在Stackoverflow上对于这个问题What is the difference between concurrency and parallelism当中, 最高赞回答进行了如下的描述
Concurrency is when two or more tasks can start, run, and complete in overlapping time periods. It doesn’t necessarily mean they’ll ever both be running at the same instant. For example, multitasking on a single-core machine.(并发是指两个或多个任务可以在重叠的时间段内启动、运行和完成。这并不一定意味着它们会同时运行。例如,单核机器上的多任务处理。)
Parallelism is when tasks literally run at the same time, e.g., on a multicore processor.(并行性是指任务实际上同时运行,例如在多核处理器上。)
并且引用了 Sun’s Multithreaded Programming Guide当中的回答:

  • Concurrency: A condition that exists when at least two threads are making progress. A more generalized form of parallelism that can include time-slicing as a form of virtual parallelism.(并发:至少有两个线程正在进行进程时存在的一种情况。一种更广义的并行形式,可以将时间切片作为虚拟并行的一种形式。)
  • Parallelism: A condition that arises when at least two threads are executing simultaneously.(并行性:至少两个线程同时执行时出现的一种情况。)

总结

总的来说, 并发这种情况可能是多个任务同时存在, 而并行这种则是有多个任务在同时执行, 因此可以说并行概念是并发概念的一个子集并没有什么问题.

参考文献

  1. 知乎回答: 李运华
  2. 知乎回答: Limbo
  3. StackOverflow回答:what-is-the-difference-between-concurrency-and-parallelism
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值