Concurrency Is Not Parallelism



Rob Pike - ‘Concurrency Is Not Parallelism’


Concurrency is dealing lots of things at once

Parallelism is doing lots of things at once

Not the same, but related

One is about structure and one is about execution

Concurrency is not parallelism, although it enables parallelism. 

If you have only one processor, your program can still be concurrent but it cannot be parallel.

On the other hand, a well-written concurrent program might run efficiently in parallel on a multiprocessor. That property could be important...

     


大师就是大师,非常的精辟, 同事感觉到毕竟计算机科学是以英语为母语发展的科学,“doing” and “dealing”太传神了。

我自己的理解:

(1), 例如在多进程模式,就是一种并发, 在单CPU的系统上没有并行但是并发的程序。而且多进程开启了并行的可能,在多核的处理器上即可以并行执行。

即使在单处理器上,并发的程序也能带来良好的结构,并且可以最大限度的利用系统的CPU和IO,达到处理器的高使用率。这也是非常重要的指标,在国内

一线互联网企业的处理器的利用率,只能达到20%以下,当然并不是由于非并发的程序结构导致,而主要是由于一台服务器只能用来部署单个服务导致。这是

云计算和容器等虚拟化技术要解决的问题。


(2), 事件驱动模型(基于linux epoll ,BSD kqueue IO复用模型),解决单台机器的C10K问题,是的单台服务器能够处理的并发连接达到很高的水平。

当然这只是并发,而不是并行,只是能够接受大规模的链接,处理连接的能力是固定的(即每秒处理多少连接数量,这依赖于服务器的绝对性能,和网络带宽)。实际上 在某一时刻活动连接可能是只是非常小的,事件驱动模型就用最小的性能开销解决了大规模并发的问题,但是这也是在某一时间deal 多少的链接,而不是do多少的链接。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值