在RPython的PyPy解释器实现的PyPy GIL的一部分,抑或是translate.py自动添加的东西吗? 也就是说,如果我写我自己的新的语言解释器RPython并运行它通过translate.py,那会是受GIL的先验,或会是这样了我的解释器代码?
Answer 1:
GIL的处理是由模块/线程/ gil.py在PyPy结帐插入。 这是一个可选的翻译功能,并启用了线程模块时,它只是增加。 这就是说,RPython本身不是线程安全的语言(例如像C),所以你需要自己照顾好自己,以正确地锁定对象,所以他们不来了不一致。 主要的问题是提供一个支持线程的垃圾收集器,因为我们现在用一个不是线程安全的,只是增加一个锁会从自由线程模型取出一大堆的好处。
干杯,fijal
文章来源: Where's the GIL in PyPy?