CPython: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
mNessun oggetto della modifica
Riga 22:
 
== Progetto ==
Una caratteristica particolare di CPython è che utilizza ''[[Global Interpreter Lock|Global Interpreter Lock (GIL)]]'','' <ref>{{Cite web|url=https://docs.python.org/3/glossary.html#term-global-interpreter-lock|title=global interpreter lock in CPython|language=Inglese}}</ref> un meccanismo che permette l'esecuzione di un solo [[Thread (informatica)|thread]] Python alla volta su un singolo processore. <ref>{{Cita web|url=https://docs.python.org/3/c-api/init.html|dataaccesso=2020-06-04}}</ref> Questo non significa che il [[multithreading]] non abbia senso: ad esempio se il tuo codice è spesso in attesa di input/output, rilascia il GIL, permettendo ad altri thread di essere eseguiti.
 
Questa potrebbe essere la situazione tipica quando più thread servono client separati. Un thread potrebbe essere in attesa della risposta da un client, un altro potrebbe essere in attesa dell'esecuzione di una query [[Base di dati|al database]], mentre il terzo thread sta elaborando il codice Python.