Python中的并发和并行

本文探讨了并发和并行的区别,指出并发主要指单核CPU中的任务交替执行,而并行则涉及多核CPU的同步任务处理。在Python中,由于GIL的存在,多线程模型只能实现并发,而多进程模型则可以利用多核实现并行。文章还介绍了Python中多线程和多进程的使用,并提供相关学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

并发和并行

  • 并行是指两个或者多个事件在同一时刻发生,而并发是指两个或多个事件在同一时间间隔发生。
  • 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。

并发针对单核 CPU 而言,它指的是 CPU 交替执行不同任务的能力;并行针对多核 CPU 而言,它指的是多个核心同时执行多个任务的能力。

单核 CPU 只能并发,无法并行;换句话说,并行只可能发生在多核 CPU 中。

并发只有结合 I/O 多路复用、异步 I/O 才能实现并发能力。

Python 中并发/并行和多线程/多进程模型的关系

线程和并发/并行

首先了解一下线程的概念:

在操作系统中,线程是 CPU 调度和执行任务的基本单位,是进程中的一条执行流。进程是资源分配的基本单位,每个进程都至少有一个线程,多个线程共享所属进程的内存空间。

我们说并发是指同一时间段内 CPU 交替执行不同任务,其实就是 CPU 不断切换执行线程。线程是最小执行单元。

那么并发 = 单核 CPU 多个线程交替切换执行,并行 = 多核 CPU 多个线程同时执行。

在大多数语言如 Java 中,多个线程是可以在多核 CPU 上执行的,Java 多线程模型 = 并发 + 并行

Python 并发/并行

在 Python 中存在 GIL (全局解释器锁),同一进程同一时刻,只能有一个线程执行。即使没有单核 CPU 的物理限制,但程序被加锁,所以 Python 的多线程模型不能利用多核 CPU。

Python 的多进程模型可以有效利用多核 CPU,因为每一个进程都有独立的 Python 解释器、独立的 GIL。GIL 只保证同一个 Python 解释器进程同一时刻只有一个线程执行,在多进程模型中不受约束。

所以,在 Python 中,多线程模型因为 GIL 限制只能实现并发,可以简单的理解为:

Python 并发 = 多线程模型

Python 并行 = 多进程模型

Python 使用多线程 & 多进程

python多线程&多进程.png

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值