news 2026/10/6 12:07:14

并发与并行:概念辨析与 Python 实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
并发与并行:概念辨析与 Python 实践

在现代软件开发中,“并发”和“并行”是两个频繁出现但常被混淆的概念。尽管它们都涉及多个任务的处理,但在本质、目标和实现方式上存在显著差异。本文将从定义出发,结合 Python 的具体示例,清晰阐述两者的区别及其适用场景。

一、基本概念

并发(Concurrency)指的是多个任务在一段时间内交替或重叠执行的能力。它关注的是程序的结构设计——如何组织多个逻辑流,使其能够协调运行。并发不要求任务真正同时执行;在单核处理器上,操作系统通过快速切换上下文,使多个任务看起来像是同时进行。

并行(Parallelism)则指多个任务在同一时刻真正同时执行。这通常依赖于多核 CPU 或多个处理器,每个任务在独立的计算单元上运行。并行的核心目标是提升计算性能,缩短任务完成时间。

简言之:

  • 并发是“处理多个事情的能力”(dealing with many things at once);
  • 并行是“同时做多个事情”(doing many things at once)。

二、Python 中的并发与并行

Python 的标准实现(CPython)包含一个称为GIL(Global Interpreter Lock,全局解释器锁)的机制。GIL 确保同一时刻只有一个线程执行 Python 字节码,这使得多线程在 CPU 密集型任务中无法实现真正的并行。然而,在 I/O 密集型场景中,线程在等待 I/O 时会释放 GIL,从而实现高效的并发。

因此,在 Python 中:

  • 多线程(threading)适用于 I/O 密集型任务,可实现并发但非并行;
  • 多进程(multiprocessing)适用于 CPU 密集型任务,可绕过 GIL,实现真正的并行。

下面通过具体代码示例说明。

示例 1:使用 threading 实现并发(I/O 密集型)

importthreadingimporttimedefio_task(name):print(f"线程{name}开始 I/O 操作")time.sleep(2)# 模拟网络请求或文件读写print(f"线程{name}完成")start=time.time()t1=threading.Thread
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 5:21:50

【回眸】Polyspace教程(一) 小白使用篇

前言 最近公司换工具换的比较频繁,几乎全换了一遍,QAC也和Tessy一样淡出了工具栏。最近开始学习使用Polyspace,乘记忆还新鲜,出个使用Guide记录一下,攒攒人品。 软件信息 软件身份确认 软件名称:Polyspace Code Prover™(含桌面版、服务器版) 所属公司:The MathWor…

作者头像 李华
网站建设 2026/10/6 5:21:50

PPP与PPPoE协议介绍

我们之前学习的大多是局域网LAN内常用的技术,但是我们总是需要访问Internet,需要访问百度、B站等等,那怎样让局域网访问外面的资源呢,其实我们已经学习过了NAT转换,但是那对于广域网的架构我们还是需要学习下的。一、广…

作者头像 李华
网站建设 2026/10/6 5:21:53

革新!AI应用架构师引领AI驱动元宇宙教育的创新变革

AI应用架构师的革新使命:构建AI驱动的元宇宙教育新生态 关键词 AI应用架构、元宇宙教育、数字孪生教师、多模态交互、个性化学习引擎、教育算力、场景化实践 摘要 当"元宇宙"从概念走向落地,当"AI"从工具升级为"智能伙伴"…

作者头像 李华
网站建设 2026/10/6 5:21:50

从单模态到多模态:AI原生审核技术的融合创新

从单模态到多模态:AI原生审核技术的融合创新 关键词:多模态AI、内容审核、跨模态对齐、融合模型、AI原生系统 摘要:当短视频里的暴力画面配上煽动性配音,当电商商品图隐藏虚假宣传文字,当社交平台评论区用“黑话”规避文本过滤——传统单模态审核技术正面临前所未有的挑…

作者头像 李华