Python | 并行 & 并发拾遗
2021-04-04 21:51
836 查看
并行与并发的区别
并行 - parallel
同时做某些事情,可以互不干扰的同一时刻做几件事情
并行:是一条高速路上的多条车道,每条车道上可能同时有车辆在跑,是同时发生的概念
并发 - concurrency
同时做某些事情,但是一个时间段内有事情要处理
并发:是众多车辆在一个时间内要通过路面的时间,比如下班时一大波人向食堂涌去,抢购时一大波请求向服务端涌去
如何处理并发?
1、队列、缓冲区
打菜时排队,先进先出,这个队列就是缓冲区,如果女士优先的话还可以设置一个优先队列
queue 模块的类,Queue、LifoQueue、PriorityQueue
2、争抢
打菜时谁抢到打菜窗口谁就先打,这里就是一种锁机制,争抢也是一个高并发解决方案,但是有一点不好,可能有人很长时间抢不到。
3、 预处理
将热门的菜提前准备好,冷门的菜临时做,这一种提前加载用户需要的数据的思路,预处理思想,缓存常用。
4、并行
太多人吃饭,可以打开多个窗口,形成多个队列并行打菜,成本上升,就像日常通过购买更多服务器,或多开进程、线程实现并行处理,解决并发,这是水平扩展的思想
注意:
如果线程在单 CPU 上运行的话就不是并行处理了。
但是多数的服务器都是多 CPU 的,服务的部署往往是多机的、分布式的,这都是并行处理
5、 提速
提到单个打菜窗口的打菜速度,即提高单个 CPU 的性能,或单个服务器安装更多的 CPU ,这是一种垂直扩展思想。
6、 消息中间件
在食堂外部建立九曲回肠的走廊。
在第一点提到的是在程序内部建立排队,这里的消息队列是在程序的外部。
常见的消息中间件有 RabbitMQ、ActiveMQ(Apache)、RocketMQ(阿里Apache)、Kafka
相关文章推荐
- python 中的并发与并行(一)
- python知识图谱--xml---并发和并行--死锁---递归---数组--同步和异步请求---线程
- python--进程与线程的区别以及并行与并发的区别
- 【Python爬虫4】并发并行下载
- Python并发编程之常用概念剖析:并行 串行 并发 同步 异步 阻塞 非阻塞 进程 线程 协程
- Python探路-同步、异步、阻塞、非阻塞、并发、并行
- Python的并发处理:(一)并行运行多个互不相干的子进程
- Python3 socket与并发并行
- 11.python并发入门(part1 初识进程与线程,并发,并行,同步,异步)
- Python 多线程教程:并发与并行
- Python 中的多线程,多进程,并发,并行,同步,通信
- python并发和并行
- python3 BIF里的并发与并行处理昝(IPC ITC)=>LTS
- Python并发与并行的新手指南
- [python]并发、并行、同步、异步、阻塞、非阻塞概念解释
- python并发编程:概念--并发 & 并行,同步 & 异步
- Python 多线程教程:并发与并行
- Python 多线程教程:并发与并行
- python并发编程(并发与并行,同步和异步,阻塞与非阻塞)
- python并行并发