并行、并发学习笔记

今天在学习python进程与线程的时候,偶然间接触到了并行与并发,于是在看了许多博客论坛之后,打算总结记录一下,如有错误,恳请指正。


看完线程进程后,最开始我是在思考假如同一浏览器下开了多个窗口时,这算是在同一进程下的多个线程呢还是在多个线程,然后有人告诉我,多线程是并发,不是并行。平时听了不少次并发等名词,但是真正自己遇到,竟然大脑一片空白。于是乎百度

并发:指多件事在同一时间间隔发生。通俗的讲就是在一条单车道上4辆车前后跟着前进。
并行:指多个时间发生在同一时刻。通俗的讲就是在一条同向4车道的道路上并排前进着4辆车(真·多进程)
并发强调的交替执行,并行强调的是同时发生。

在知乎上也有很多通俗易懂的解释:

比如在吃饭的时候,你接到一个电话,这个时候你放下筷子转而接电话,即为并发。
如果你边吃饭边说话,那么是并行的。
其实我觉得这个解释得选好参照物(竞争资源),如果以嘴巴作为参照物的话,人是不能在咀嚼食物的时候再取发声的,只能说一句话在嚼一次说一句嚼一次,这样不就是并发了嘛,如果以这个人作为参照物,那么他确实实现了在说话的同时接了电话,那这就是并行。

并发指代码在逻辑上可以并行,具有并行潜力,单不一定直接以物理并行方式运行,并发指的是代码的性质,并行指的是物理运行状态。

并行是并发的一个子集,并行是并发在多核CPU上的物理实现。(那一句”多线程是并发,不是并行”指的是运行在单CPU计算机上的把,如果在多核心CPU上,多线程是可以实现并行的。)

单核CPU的任务为:并发,串行
多核CPU的任务为:并发,串行 + 并行,并发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值