Пајтон (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.

Види још[уреди]

Референце[уреди]

Спољашње везе[уреди]