Sobes.tech
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.