自 Python 3.2 以来,Python GIL 的护航效应已经解决了吗?

tti*_*ger 6 python multithreading gil python-3.x

我正在研究 Python 的 GIL 是如何工作的。我正在从下面的幻灯片中学习,但我有一个问题。

http://www.dabeaz.com/python/UnderstandingGIL.pdf

本幻灯片介绍了 Python 3.2 中的新 GIL 并提供了概述。其中,作为新GIL的一个缺点,引入了I/O绑定线程不能被有效处理的Convoy Effect。

而且,作为一项潜在的改进,可以通过根据线程是 I/O 密集型还是 CPU 密集型给予优先级来解决这个问题。

自 Python 3.2 以来,这样的改进真的实现了吗?如已实施,请介绍具体内容。

Chr*_*don 4

自 Python 3.10 起,Dave 建议的修复或其他修复尚未在 Python 中实现。这是相关问题,目前已关闭wontfix,因此可以肯定地说,这个护航效应问题至少在不久的将来也不会得到解决。

我的理解是,目前还不清楚这是否真的是一个影响生产中代码的问题,并且修复会涉及到需要更改的 Python 的危险部分。因此不情愿。如果它被证明是生产系统中遇到的实际问题,而不仅仅是理论上的问题,我认为讨论将会发生变化。