Пајтон (Stackless)
интерпретатор Пајтон програмског језика From Wikipedia, the free encyclopedia
Remove ads
Stackless Пајтон, или Stackless, је интерпретатор Пајтон програмског језика, тако назван јер избегава зависност од C да зове свој сопствени стек. Једна од најистакнутијих могућности овог језика су микронитне, које избегавају већину општих трошкова повезаних са нитнама оперативног система. Као додатак Пајтоновим могућностима, Stackless такође додаје подршку за корутине, комуникацију између канала и серијализација задатака.
Remove ads
Дизајн
Са Пајтоном Stackless, покренути програм је раздвојен на микронитне које су одржаване од стране самог интерпретатора језика, не од језгра оперативног система—замена контекста и распоређивање су извршени искључиво у интерпретатору. Микронитне одржавају извршавање различитих подзадатака у програму на истом језгру процесора. Тиме, они су и алтернатива асинхронизованим програмима који су базирани на догађајима, и такође заобилазе опште трошкове због коришћења различитих нитни за програме за једно језгро (зато што није потребно мењати модове између корисничког и језгарног, тиме коришћење самог језгра може бити смањено).
Иако микронитне чине покретање подзадатака на једном зегру много лакше, Stackless Пајтон нити брише Пајтонов Глобални Катанац нити се користи вишенитнама и/или процесима. Тиме само дозвољава кооперативни мултитаскинг на заједничком процесору без паралелне обраде. Да би се користили вишејезгарни процесору, особа би морала и даље да направи унутрашње процесорну комуникацију преко процеса Пајтона Stackless.
Због великог броја промена у изворном коду, Stackless Пајтон не може бити инсталиран на већ постојећу Пајтон инсталацију као екстензија или екстензија или библиотека. Уместо тога је комплетна Пајтон дистрибуција сама по себи. Већина могућности Stackless-а су такође убачена у PyPy, само-одрживи Пајтон интерпретатор и JIT компајлер.[1]
Remove ads
Корист
Иако је целокупни Stackless посебна дистрибуција, његова могућност мењања функционалности је успешно упакована као CPython екстензија названа greenlet. Коришћена је у великом броју библиотека (нпр. gevent) да се омогући "зелено нитновање" решење за CPython.
Stackless је веома коришћен у имплементацији Eve Online масивне онлајн игрице за више играча као и у поштанској платформи IronPort.
Види још
- Erlang (програмски језик)
- Limbo (програмски језик)
- Go (програмски језик)
- SCOOP (софтвер)
Референце
Спољашње везе
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads