Пајтон (Stackless)

Пајтон (Stackless)
Оригинални називенгл. Stackless Python
Изговара сеСтеклес Пајтон
Моделимперативни, објектно-оријентисани, функционални
Аутор(и)Кристијан Тисмер
ДијалектиПајтон (Stackless), RPython
УтицајиC, Пајтон
ЛиценцаЛиценца Фондације Пајтон Софтвера
Веб-сајтhttp://www.stackless.com/

Stackless Пајтон, или Stackless, је интерпретатор Пајтон програмског језика, тако назван јер избегава зависност од C да зове свој сопствени стек. Једна од најистакнутијих могућности овог језика су микронитне, које избегавају већину општих трошкова повезаних са нитнама оперативног система. Као додатак Пајтоновим могућностима, Stackless такође додаје подршку за корутине, комуникацију између канала и серијализација задатака.

Дизајн

Са Пајтоном Stackless, покренути програм је раздвојен на микронитне које су одржаване од стране самог интерпретатора језика, не од језгра оперативног система—замена контекста и распоређивање су извршени искључиво у интерпретатору. Микронитне одржавају извршавање различитих подзадатака у програму на истом језгру процесора. Тиме, они су и алтернатива асинхронизованим програмима који су базирани на догађајима, и такође заобилазе опште трошкове због коришћења различитих нитни за програме за једно језгро (зато што није потребно мењати модове између корисничког и језгарног, тиме коришћење самог језгра може бити смањено).

Иако микронитне чине покретање подзадатака на једном зегру много лакше, Stackless Пајтон нити брише Пајтонов Глобални Катанац нити се користи вишенитнама и/или процесима. Тиме само дозвољава кооперативни мултитаскинг на заједничком процесору без паралелне обраде. Да би се користили вишејезгарни процесору, особа би морала и даље да направи унутрашње процесорну комуникацију преко процеса Пајтона Stackless.

Због великог броја промена у изворном коду, Stackless Пајтон не може бити инсталиран на већ постојећу Пајтон инсталацију као екстензија или екстензија или библиотека. Уместо тога је комплетна Пајтон дистрибуција сама по себи. Већина могућности Stackless-а су такође убачена у PyPy, само-одрживи Пајтон интерпретатор и JIT компајлер.[1]

Корист

Иако је целокупни Stackless посебна дистрибуција, његова могућност мењања функционалности је успешно упакована као CPython екстензија названа greenlet. Коришћена је у великом броју библиотека (нпр. gevent) да се омогући "зелено нитновање" решење за CPython.

Stackless је веома коришћен у имплементацији Eve Online масивне онлајн игрице за више играча као и у поштанској платформи IronPort.

Види још

Референце

  1. ^ Application-level Stackless features — PyPy documentation

Спољашње везе

  • Званични веб-сајт Измените ово на Википодацима
  • Multithreaded Game Scripting with Stackless Python од Харија Калогироуа
  • Continuations and Stackless Python од Кристијана Тисмера
Stub icon This programming-language-related article is a stub. You can help Wikipedia by expanding it.
  • v
  • t
  • e[1]
  • п
  • р
  • у
Пајтон
Имплементације
  • CLPython
  • CPython
  • Cython
  • IronPython
  • Jython
  • Psyco
  • PyPy
  • Пајтон за S60
  • Пајтон (Stackless)
  • Unladen Swallow
ИРОТеме
  • WSGI
  • software (list)
  • Python Software Foundation
  • PyCon