Python中的并发和并行

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

并发和并行

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

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

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

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

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

线程和并发/并行

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

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

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

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

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

Python 并发/并行

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值