Sobes.tech
Middle

Co je GIL (Global Interpreter Lock)?

sobes.tech AI

Odpověď od AI

GIL (Global Interpreter Lock) je mechanismus v interpretu Python (zejména CPython), který zajišťuje, že v daném okamžiku vykonává pouze jeden vlákno Python bytecode. To je provedeno pro zjednodušení správy paměti a prevenci problémů s konkurenčním přístupem k objektům.

Kvůli GIL nemohou vícevláknové programy v Pythonu efektivně využívat více jader procesoru pro výpočetně náročné úkoly, protože vlákna se nevykonávají paralelně, ale střídají se sekvenčně. Nicméně pro úkoly vstupu/výstupu není GIL úzkým místem, protože je uvolněn během čekání na vstup/výstup.

Příklad: pokud máte CPU-vázaný úkol, vícevláknovost v Pythonu nezvýší výkon kvůli GIL, a multiprocessing nebo použití jiných jazyků bude efektivnější.