13

PyPy GIL 是 RPython 中 PyPy 解释器实现的一部分,还是 translate.py 自动添加的东西?即,如果我要在 RPython 中编写自己的新语言解释器并通过 translate.py 运行它,它会先验地受制于 GIL,还是取决于我的解释器代码?

4

1 回答 1

10

GIL 处理由模块/线程/gil.py 在您的 PyPy 结帐中插入。这是一个可选的翻译功能,仅在启用线程模块时添加。也就是说,RPython 本身不是线程安全的语言(例如 C),因此您需要注意正确锁定对象,以免它们出现不一致。主要问题是提供一个线程感知垃圾收集器,因为我们现在使用的垃圾收集器不是线程安全的,仅仅添加一个锁就会从自由线程模型中消除很多好处。

干杯,菲亚尔

于 2012-08-31T07:33:00.210 回答