python并发与并行概念,以及multiprocessing模块应用举例

embedded/2024/11/19 14:09:27/

在Python中,并发和并行是两个相关但含义不同的概念:

● 并发(Concurrent)指的是在一段时间内,多个任务交替执行的能力,这些任务可能不是同时执行,但给人的感觉是同时在处理多项任务。它可以发生在单核或多核处理器上,通过任务调度来实现“同时”处理的效果。
● 并行(Parallel)则是指在同一时刻,多个任务真正同时执行,这通常需要多核处理器支持。并行处理能够显著提高程序执行效率,因为它能同时利用多个处理器核心进行计算。

multiprocessing模块是Python用于实现并行处理的一种方式,特别是在受到全局解释器锁(GIL)限制的CPython解释器中,多线程并不能实现真正的并行计算。multiprocessing模块通过创建多个进程来绕过GIL,允许程序充分利用多核CPU资源,实现真正的并行执行。

以下是一个使用multiprocessing模块实现并行计算的简单示例,展示了如何启动多个进程来并行处理任务列表:

python">import multiprocessingdef square(number, return_dict):"""计算一个数的平方,并将结果存入共享的字典中。"""result = number * numberreturn_dict[number] = resultif __name__ == "__main__":numbers = [1, 2, 3, 4, 5]manager = multiprocessing.Manager()  # 创建一个Manager对象,用于创建共享数据类型return_dict = manager.dict()  # 一个可以在不同进程间共享的字典# 创建并启动进程processes = []for number in numbers:p = multiprocessing.Process(target=square, args=(number, return_dic

http://www.ppmy.cn/embedded/138781.html

相关文章

【网络安全面经】技术性问题2

1. 防范常见的 Web 攻击 常见的 Web 攻击类型 SQL 注入:攻击者通过在用户输入框中输入恶意的 SQL 语句,试图获取数据库中的敏感信息。例如,在登录表单中输入 or 11--,如果网站没有进行适当的防范,可能会导致数据库信…

SAP B1 登陆报错解决方案 - 系统架构目录服务器选择

背景 登录时出现如下报错,报错显示为【系统架构目录服务器选择】 强行登录会发现过往账套都不见了 出现原因 出于各种原因在开机时没有把 SAP 所有的服务成功启动(上一次启动科学上网后全局代理没关干净之类的)。 解决方案 关机几分钟重启…

[Docker#9] 存储卷 | Volume、Bind、Tmpfs | -v/mount | MySQL 灾难恢复 | 问题

目录 1. 什么是存储卷? 2. 生活案例 3. 为什么需要存储卷? 4. 存储卷分类 一. 管理卷 Volume 创建卷 通过 -v 或 --mount 指定 1. -v 语法 命令格式 参数说明 2. --mount 语法 命令格式 参数说明 验证 二. 绑定卷 (Bind Mount) 1. 绑定卷概述 2. 创建绑定卷…

《Beginning C++20 From Novice to Professional》第十三章 Operator Overloading

操作符重载主要是让自定义类型有和内置类型类似的自然的操作,比如字符串的连接、矩阵的运算等等用操作符比使用成员函数(虽然也是成员函数)要直观一些 本章我们可以学到: Implementing Operators for a Class 上一章我们实现的Truckload类有一个寻找最大体积的函数,其中…

Mybatis框架之单例模式 (Singleton Pattern)

MyBatis 框架中也使用到了单例模式 (Singleton Pattern),主要体现在 SqlSessionFactory 的创建和管理上。通过单例模式,MyBatis 可以确保整个应用程序中只创建一个 SqlSessionFactory 实例,从而有效地管理数据库连接资源并提高性能。下面将详…

wsl配置ubuntu22.04,并配置docker

wsl配置ubuntu22.04,并配置docker 文章目录 wsl配置ubuntu22.04,并配置docker一、在Windows上安装Linux子系统前提条件安装步骤 二、wsl安装系统到其他盘①查看wsl运行状态,将其保持在关闭状态②导出当前Linux的镜像③注销之前的系统并检查④…

系统思考—跳出症状看全局

在和企业创办人交流中,经常听到这样的疑问:“为什么我们试了这么多办法,问题却还是没有解决?”其实很多时候,根本原因并不在于对策不到位,而是连问题的本质都没找对。 曾经和一家企业合作,为了解…

大数据-225 离线数仓 - 目前需求分析 指标口径 日志数据采集 taildir source HDFS Sink Agent Flume 优化配置

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…