前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python | 并行 & 并发拾遗

Python | 并行 & 并发拾遗

作者头像
咸鱼学Python
发布2020-05-29 16:24:01
4570
发布2020-05-29 16:24:01
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python

并行与并发的区别

并行 - parallel

同时做某些事情,可以互不干扰的同一时刻做几件事情

并行:是一条高速路上的多条车道,每条车道上可能同时有车辆在跑,是同时发生的概念

并发 - concurrency

同时做某些事情,但是一个时间段内有事情要处理

并发:是众多车辆在一个时间内要通过路面的时间,比如下班时一大波人向食堂涌去,抢购时一大波请求向服务端涌去

如何处理并发?

1、队列、缓冲区

打菜时排队,先进先出,这个队列就是缓冲区,如果女士优先的话还可以设置一个优先队列

queue 模块的类,Queue、LifoQueue、PriorityQueue

2、争抢

打菜时谁抢到打菜窗口谁就先打,这里就是一种锁机制,争抢也是一个高并发解决方案,但是有一点不好,可能有人很长时间抢不到。

3、 预处理

将热门的菜提前准备好,冷门的菜临时做,这一种提前加载用户需要的数据的思路,预处理思想,缓存常用。

4、并行

太多人吃饭,可以打开多个窗口,形成多个队列并行打菜,成本上升,就像日常通过购买更多服务器,或多开进程、线程实现并行处理,解决并发,这是水平扩展的思想

注意

如果线程在单 CPU 上运行的话就不是并行处理了。

但是多数的服务器都是多 CPU 的,服务的部署往往是多机的、分布式的,这都是并行处理

5、 提速

提到单个打菜窗口的打菜速度,即提高单个 CPU 的性能,或单个服务器安装更多的 CPU ,这是一种垂直扩展思想。

6、 消息中间件

在食堂外部建立九曲回肠的走廊。

在第一点提到的是在程序内部建立排队,这里的消息队列是在程序的外部。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 并行与并发的区别
    • 并行 - parallel
      • 并发 - concurrency
      • 如何处理并发?
      相关产品与服务
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档