Junior — Middle
Ce este GIL în Python?
sobes.tech AI
Răspuns de la AI
GIL (Global Interpreter Lock) este un mecanism în CPython (implementarea standard a Python) care asigură că, într-un moment dat, doar un singur fir de execuție rulează bytecode-ul Python.
Aceasta înseamnă că, chiar dacă aveți mai multe fire de execuție, acestea nu pot executa simultan cod Python, ceea ce limitează paralelismul în programele multi-thread.
GIL simplifică gestionarea memoriei și previne problemele de acces concurent la obiecte, dar reduce eficiența calculului multi-thread, mai ales pe procesoare multi-core.
Pentru a ocoli limitările GIL, se folosesc adesea:
- Multiprocesare (modul multiprocessing)
- Utilizarea extensiilor în C care eliberează GIL în timpul calculelor intensive
- Alte implementări Python fără GIL (de exemplu, Jython, IronPython)
Exemplu:
import threading
def worker():
print("Lucru în thread")
thread = threading.Thread(target=worker)
thread.start()
thread.join()
Deși firele de execuție sunt pornite, GIL garantează că bytecode-ul se execută secvențial.