Python | 并行 & 并发拾遗

简介: Python | 并行 & 并发拾遗

并行与并发的区别

并行 - parallel

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

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

并发 - concurrency

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

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

如何处理并发?

1、队列、缓冲区

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

queue 模块的类,Queue、LifoQueue、PriorityQueue

2、争抢

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

3、 预处理

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

4、并行

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

注意

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

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

5、 提速

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

6、 消息中间件

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

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

常见的消息中间件有 RabbitMQ、ActiveMQ(Apache)、RocketMQ(阿里Apache)、Kafka

相关文章
|
3月前
|
开发框架 并行计算 算法
揭秘Python并发神器:IO密集型与CPU密集型任务的异步革命,你竟还傻傻分不清?
揭秘Python并发神器:IO密集型与CPU密集型任务的异步革命,你竟还傻傻分不清?
46 4
|
2月前
|
监控 并行计算 数据处理
构建高效Python应用:并发与异步编程的实战秘籍,IO与CPU密集型任务一网打尽!
在Python编程的征途中,面对日益增长的性能需求,如何构建高效的应用成为了每位开发者必须面对的课题。并发与异步编程作为提升程序性能的两大法宝,在处理IO密集型与CPU密集型任务时展现出了巨大的潜力。今天,我们将深入探讨这些技术的最佳实践,助你打造高效Python应用。
38 0
|
20天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
30 2
|
29天前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
18 1
|
2月前
|
并行计算 安全 Java
Python 多线程并行执行详解
Python 多线程并行执行详解
72 3
|
2月前
|
中间件 API 调度
深入探究 Python 异步编程:利用 asyncio 和 aiohttp 构建高效并发应用
深入探究 Python 异步编程:利用 asyncio 和 aiohttp 构建高效并发应用
33 4
|
2月前
|
中间件 API 调度
深入探究 Python 异步编程:利用 asyncio 和 aiohttp 构建高效并发应用 精选
深入探究 Python 异步编程:利用 asyncio 和 aiohttp 构建高效并发应用 精选
28 2
|
2月前
|
开发框架 并行计算 .NET
脑洞大开!Python并发与异步编程的哲学思考:IO密集型与CPU密集型任务的智慧选择!
脑洞大开!Python并发与异步编程的哲学思考:IO密集型与CPU密集型任务的智慧选择!
29 1
|
3月前
|
Python
Python中的zip:高效处理并行迭代的利器
Python中的zip:高效处理并行迭代的利器
26 0
|
3月前
|
算法 Java 程序员
解锁Python高效之道:并发与异步在IO与CPU密集型任务中的精准打击策略!
在数据驱动时代,高效处理大规模数据和高并发请求至关重要。Python凭借其优雅的语法和强大的库支持,成为开发者首选。本文将介绍Python中的并发与异步编程,涵盖并发与异步的基本概念、IO密集型任务的并发策略、CPU密集型任务的并发策略以及异步IO的应用。通过具体示例,展示如何使用`concurrent.futures`、`asyncio`和`multiprocessing`等库提升程序性能,帮助开发者构建高效、可扩展的应用程序。
117 0