GVL (Global VM Lock, anksčiau GIL) MRI Ruby leidžia tik vienam gijui vykdyti Ruby kodą vienu metu — todėl gijos nepateikia tikro CPU lygiagretizmo. Tačiau GVL yra atleidžiama I/O metu, todėl gijos padeda I/O-ribotuose darbams. CPU lygiagretizmui naudojate kelis procesus. Tai atspindi Python GIL situaciją.
GVL: tik vienas gigas vykdo Ruby kodą vienu metu
MRI (the standard Ruby) has a GLOBAL VM LOCK:
→ only ONE thread executes Ruby code at any instant (no CPU parallelism from threads)
→ BUT the GVL is RELEASED during blocking I/O (network, file, DB)
So: threads help for I/O-bound work, NOT for CPU-bound work.
