Jython有GIL吗?

时间:2009-07-13 15:58:36

标签: python multithreading jython

我确信它没有,但在Interwebs上寻找明确答案让我有疑问。例如,我得到了一个2008 post乍一看看起来像个笑话,但看起来似乎很认真。

编辑: ......在看得更近之后,成为了一个笑话。对困惑感到抱歉。实际上,正如Nikhil所指出的那样,对该帖子的评论回答了我的问题。

  

我们意识到CPython在这方面远远领先于我们,而且我们缺乏兼容性。在经过严肃的头脑风暴(以及几杯葡萄酒)后,我们决定在Jython中引入Global Interpreter Lock将解决整个问题!

现在,这里的状态是什么? "differences" page on sourceforge根本没有提到GIL。有没有我忽略的官方消息来源?

另请注意,我知道目前正在讨论GIL是否重要,但我暂时不关心。

4 个答案:

答案 0 :(得分:23)

你发现的引用确实是个玩笑,这里是Jython实现GIL的演示:

Jython 2.5.0 (trunk:6550M, Jul 20 2009, 08:40:15) 
[Java HotSpot(TM) Client VM (Apple Inc.)] on java1.5.0_19
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import GIL
  File "<stdin>", line 1
SyntaxError: Never going to happen!
>>> 

答案 1 :(得分:21)

不,它没有。它是VM实现的一部分,而不是语言。

另见:

from __future__ import braces

答案 2 :(得分:4)

JythonIronPython“缺少”GIL,因为它是底层VM的实现细节。我之前发现了很多信息,现在我唯一可以提出is this

请注意,GIL只是多处理器环境中的问题,而CPython中的it's unlikely to go away in the foreseable future只是问题。

答案 3 :(得分:-1)

Google正在制作一个Python实现,这是一个经过修改的cpython,其性能改进称为unladen swallow。这将负责删除GIL。 请参阅:Unladen Swallow