Доступ к переменным является одним из тех «скрытых» узких мест.Если все потоки обращаются к какой-либо общей структуре данных, между потоками будет происходить синхронизация.
Jython изо всех сил пытается достичь языковой совместимости с CPython.GIL гарантирует, что доступ к локальным / глобальным переменным, членам объекта, элементам dict (технически локальные, глобальные и члены объекта также являются элементами dict) или даже элементам списка является атомарным.Чтобы избежать неожиданностей для пользователей, Jython использует параллельную хэш-карту для реализации диктов.Это означает, что при доступе к любым элементам dict в Jython происходит некоторая синхронизация.Эта синхронизация используется для поддержки доступа к dict из нескольких потоков без их блокировки, но если несколько потоков получат доступ к одной и той же переменной, они получат одинаковую блокировку.
Лучший способ достижения масштабируемости в Jythonлюбой другой язык, чтобы убедиться, что данные, к которым вы обращаетесь в каждом потоке, также не доступны из других потоков.