什么是 Python 的全局解释器锁 (GIL)?
“全局解释器锁”(或 GIL)是 Python 社区中的常见术语。 这是一个众所周知的 Python 功能。 但 GIL 到底是什么?
如果您有使用其他编程语言(例如 Rust)的经验,您可能已经知道什么是互斥锁 (mutex)。 互斥锁可以确保数据每次只能由一个线程访问。 这可以防止数据被多个线程同时修改。 您可以把它视为一种“锁”,它会阻止所有线程访问数据,除了持有密钥的线程之外。
GIL 基本上是一个互斥锁。 它一次只允许一个线程访问 Python 解释器。 我有时把它想象成 Python 的方向盘。 您肯定不会想让多个人操控方向盘! …