Sobes.tech
Middle+

Mis on Global Interpreter Lock (GIL) Pythonis?

sobes.tech AI

Vastus AI-lt

Global Interpreter Lock (GIL) on mehhanism CPythonis, mis tagab, et iga hetkega täidab Pythoni baitkoodi ainult üks niit. Seda tehakse mälu haldamise lihtsustamiseks ja tõrkeid vältimiseks interpretatsiooni sisemuses.

GIL-i tõttu ei saa Pythonis mitme niidiga programmid tõhusalt kasutada mitut protsessorituuma CPU-bound ülesannete täitmiseks, kuna niidid ei täida paralleelselt baitkoodi tasemel. Kuid I/O-bound ülesannete puhul ei ole GIL takistuseks, kuna sisend/väljund-operatsioonide ajal vabastab niit GIL-i, võimaldades teistel niitidel töötada.

Näide: kui soovite Pythonis arvutusi paralleelselt teha, kasutavad sageli multiprocessing-i threading asemel, et GIL-i piirangut ületada, luues eraldi protsessid oma interpreteerija ja mäluga.