pypy - PyPy 中的 GIL 在哪里?

标签 pypy gil rpython

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

最佳答案

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

干杯,
菲哈尔

关于pypy - PyPy 中的 GIL 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166268/

相关文章:

python - 使用pip_pypy3安装pyarrow时出现 "Could NOT find Arrow"错误

PyPy 与 Nuitka

python - 在多线程 C 应用程序中嵌入 python

python - 在不同设置中使用以及引用 GIL 时,术语 I/O 会出现混淆

pypy - 从标准 python 代码调用基于 rpython 的函数

pytest - 在pypy下比较pytest中的unicode在第一次运行时失败

python - 如何使用 pypy 1.4.1 安装 twisted 10.2.0?

c++ - 使用线程在python中调用多个c++函数

python - 如何在Rstudio中运行python脚本

python - rpy2 中的 fitdistr