Python 3.12 子解释器是多 CPU 吗?

问题描述 投票:0回答:1

Python 3.12 公开了子解释器功能:启动 Python 主 exe 后,您可以生成多个子解释器线程。 问题:

  1. 由于子解释器线程与 Python 主要威胁在同一进程中运行,这是否意味着子解释器只能使用主线程运行所在的 CPU 核心?
  2. 如果是这样,您将如何使用采用全系列可用 CPU/内核(现代硬件上的 8-16 个)的子解释器?
python python-3.x python-subinterpreters
1个回答
0
投票

让我按顺序回答问题:

  1. 根据Python 3.12关于Per-interpreter GIL的文档,子解释器只能使用CPU的核心。原因是,此实现提供了每个核心之间的隔离,从而允许 GIL 独立执行而不会阻塞进程。
  2. 这与多处理比多线程更相关。因此,GIL 确保多核架构的每个核心都是隔离的。由于每个核心只有一个主线程可能会在某一时刻处于繁忙状态,因此根据 CPU 架构,可以使用/实现此每个解释器。根据this,全系列核心可以在3.12版本开始使用。
© www.soinside.com 2019 - 2024. All rights reserved.