GVL (Global VM Lock, prej GIL) v MRI Rubyju omogoča samo enemu niti izvajati Ruby kodo naenkrat — zato niti ne zagotavljajo prave CPU paralelnosti. Vendar je GVL izpuščen med I/O, zato niti dejansko pomagajo pri I/O-vezanem delu. Za CPU paralelnost uporabite več procesov. To je podobno situaciji s Pythonovim GIL.
GVL: ena nit izvaja Ruby kodo naenkrat
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.
