GVL (Global VM Lock, entinen GIL) MRI Rubyssa sallii vain yhden säikeen suorittaa Ruby-koodia kerrallaan — joten säikeet eivät tarjoa todellista CPU-parallelismia. GVL kuitenkin vapautuu I/O-operaatioiden aikana, joten säikeet auttavat I/O-sidonnaisissa töissä. CPU-parallelismiin käytetään useita prosesseja. Tämä heijastaa Pythonin GIL-tilannetta.
GVL: vain yksi säie suorittaa Ruby-koodia kerrallaan
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.
