Многие игроки в EVE знают, что наша игра написана на языке программирования Python – если быть точнее, Stackless Python. Stackless ― это усовершенствованная версия интерпретатора, позволяющая пользоваться многими преимуществами многопоточного программирования. Но, тем не менее, «питон» остается «питоном», и нам приходится иметь дело с глобальной блокировкой интерпретатора (Global Interpreter Lock, также известной как «этот чертов GIL» или просто GIL).

GIL ограничивает доступ к интерпретатору (и всем соответствующим данным): в каждый конкретный момент времени обрабатывается лишь один поток. Поэтому хотя Stackless Python и обладает многими признаками «многопоточного» языка (такими как разделение задач, каналы, планировщики, совместная память, и т.д.), написанная на нем программа все равно способна обрабатывать лишь одну задачу за раз. Это похоже то, как работали некоторые многозадачные операционные системы в прошлом ― и такая схема позволяет гарантировать, что исполнение каждого потока не будет прервано в какой-то момент времени (за исключением тех случаев, когда поток нарушает принципы проблемы остановки). Это также позволяет нам исходить из многих предпосылок о глобальном состоянии игры при написании кода, что было бы невозможно, если бы мы использовали асинхронную логику и функции обратного вызова. По сути дела, большая часть логических блоков в коде нашей игры следуют принципам процедурной синхронной модели, что позволяет быстро и безболезненно вносить изменения в код.

Проблема заключается в том, что часть «фреймворка» в EVE Online написана на Python, и поэтому нам приходится использовать GIL. Это ограничение распространяется и на написанные на языке C модули, которым необходимо получать данные от интерпретатора Python.

Категория: Технологии | Просмотров: 26051 | Добавил: Heritor | Дата: 20 Июнь 2011

»Рубрики«
Механика [13]
Изменения в механике игры
Контент [3]
Миссии, предыстория и пр.
Графика [5]
Визуальные эффекты и графика
Технологии [14]
Системные требования, API, технологии
Web-технологии [4]
Официальный сайт, сервисы
Экономика [4]
Внутриигровая экономика, QEN
Прочее [9]
Материалы общего характера
»Поиск«
»Календарь«
«  Июнь 2011  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930
»Ссылки«
»О сайте«

SKOLI.ru — русский фан сайт игры EVE Online. Статьи и новости с официального сайта eve-online о мире Нового Эдема, гайды, переводы хроник EVE, скриншоты и обои, амбиентная музыка из игры, видео.

»Статистика«

© 2008-2017 SKOLI.RU
Обязательна ссылка на источник, если вы используете материалы, расположенные на данном сайте.
COPYRIGHT NOTICE
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. CCP hf. is not in any way affiliated with, Skoli.ru. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.