news 2026/6/15 14:43:17

并发与并行:概念辨析与 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/6/12 18:50:27

2026年大模型16项核心Benchmark全解析,选型不再迷茫

本文详解2026年大模型评估体系中的16项全维度核心Benchmark,涵盖通用常识、学术研究、编程实战等能力维度。通过指标详解、术语解码和案例拆解,帮助读者理解如何根据自身需求选择合适模型,并给出避坑指南,强调匹配度比平均分更重要…

作者头像 李华
网站建设 2026/6/15 13:35:33

2025年DT SCI1区TOP,无人机编队鲁棒多目标任务规划: 融合任务预分配与重分配框架,深度解析+性能实测

目录1.摘要2.无人机编队任务的预先分配与重新分配问题3.改进多目标进化算法4.结果展示5.参考文献6.代码获取7.算法辅导应用定制读者交流1.摘要 针对无人机编队在任务执行过程中因平台损毁或目标未完成而导致作战效能下降的问题,本文提出了一种融合任务预分配与重分…

作者头像 李华
网站建设 2026/6/1 10:52:43

米尔顿·弗里德曼《实证经济学方法论》解读

米尔顿弗里德曼《实证经济学方法论》解读 米尔顿弗里德曼的《实证经济学方法论》是1953年收录于其《实证经济学论文集》的开篇纲领性论文,是现代实证经济学发展的基石性文献。该文以工具主义哲学为内核,打破了传统经济学方法论的混乱局面,确…

作者头像 李华
网站建设 2026/6/15 12:48:59

数据立方体在智慧城市建设中的关键作用

数据立方体:打通智慧城市数据壁垒的核心引擎 摘要/引言:当智慧城市遇到“数据孤岛”难题 清晨7点,深圳南山区的上班族小李盯着手机上的导航APP——屏幕上红得发亮的拥堵路段像一条凝固的血管。与此同时,3公里外的环保监测站发出…

作者头像 李华
网站建设 2026/6/15 12:53:43

五种并行处理策略对比调研

在处理大规模文本数据时,合理利用多进程可以显著提升处理速度。然而,并行策略的选择对性能影响巨大。本文通过一个具体的 JSONL 文件处理任务(为每行文本添加词数统计),实现并对比五种不同的多进程策略,分析其性能差异和适用场景。 所有代码均可直接复制运行,包含数据生…

作者头像 李华