Stackless Python: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Creata dalla traduzione della pagina "Stackless Python" |
Creata dalla traduzione della pagina "Stackless Python" |
||
Riga 17:
Con Stackless Python, un programma in esecuzione viene suddiviso in microthread gestiti dall'interprete del linguaggio stesso e non dal [[kernel]] del [[sistema operativo]]. A differenza dei thread tradizionali del sistema operativo, i microthread, sono molto più leggeri e richiedono meno risorse per essere creati e gestiti. Questi microthread simulano una sorta di [[multitasking]] interno a un singolo processo, senza dover ricorrere ai costosi [[context switch]] del sistema operativo.
I microthread offrono un modo efficiente per gestire l'esecuzione concorrente di diverse sotto-attività all'interno di un singolo processo, sfruttando un [[Processore multicore|singolo core]] della [[CPU]]. Pertanto, rappresentano un'alternativa alla programmazione asincrona basata sugli [[Programmazione a eventi|eventi]] ed evitano il sovraccarico dovuto all'utilizzo di thread separati per programmi single-core (in quanto non è necessario effettuare alcun passaggio
Stackless Python, pur facilitando la gestione di microthread su un singolo core, non risolve il problema del [[Global Interpreter Lock|Global Interpreter Lock (GIL)]] di [[CPython]]. Quindi anche se Stackless Python permette di creare molti microthread, questi possono comunque essere eseguiti solo uno alla volta su un singolo core della CPU. In tal senso il [[Calcolo parallelo|parallelismo]] risulta limitato (la preemption non era disponibile in Stackless mentre ora è stata introdotta una forma di preemption limitata). <ref>{{Cita web|url=https://bitbucket.org/stackless-dev/stackless/wiki/Home|citazione=a round robin scheduler is built in. It can be used to schedule tasklets either cooperatively or preemptively.}}</ref>
Riga 27:
== Utilizzo ==
Sebbene
Stackless è ampiamente utilizzato nell'implementazione del gioco online multigiocatore di massa ''[[EVE Online|Eve Online]]'' e nella piattaforma di posta elettronica IronPort .
|