Есть ли у Jython GIL? - PullRequest
       24

Есть ли у Jython GIL?

17 голосов
/ 13 июля 2009

Я был уверен, что это не так, но поиск точного ответа на Межсетях оставил у меня сомнения. Например, я получил сообщение 2008 , которое на первый взгляд выглядело как шутка, но, казалось, было серьезно смотреть ближе.

Edit: ... и оказалось быть шуткой после того, как посмотрел еще ближе . Извините за путаницу. На самом деле комментарии к этому посту отвечают на мой вопрос, как правильно указал Нихиль.

Мы поняли, что CPython далеко впереди нас в этой области, и что нам не хватает совместимости. После серьезного мозгового штурма (и нескольких бокалов вина) мы решили, что внедрение Global Interpreter Lock в Jython решит всю проблему!

Теперь, каков здесь статус? Страница «различия» на sourceforge вообще не упоминает GIL. Есть ли какой-нибудь официальный источник, который я пропустил?

Обратите внимание, что мне известно о продолжающемся обсуждении, имеет ли значение GIL вообще, но на данный момент меня это не волнует.

Ответы [ 4 ]

23 голосов
/ 18 июля 2009

Цитата, которую вы нашли, была действительно шуткой, вот демонстрация реализации GIL в Jython:

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!
>>> 
21 голосов
/ 13 июля 2009

Нет, это не так. Это часть реализации виртуальной машины, а не язык.

Смотри также:

from __future__ import braces
4 голосов
/ 13 июля 2009

И Jython, и IronPython "не хватает" GIL, потому что это деталь реализации базовой виртуальной машины.Было много информации, которую я нашел некоторое время назад, теперь единственное, что я мог придумать , это .

Помните, что GIL является проблемой только для многопроцессорной средытолько и что вряд ли уйдет в обозримом будущем с CPython.

0 голосов
/ 16 июля 2009

Google делает реализацию Python, представляющую собой модифицированный cpython с улучшением производительности, который называется unladen swallow Это позаботится об удалении GIL. Смотри: Лягушка без груза

...