GVL (Global VM Lock, tidigare GIL) i MRI Ruby tillåter endast en tråd att köra Ruby-kod åt gången — så trådar ger inte sann CPU-parallellism. Men GVL frigörs under I/O, så trådar hjälper för I/O-bunden arbete. För CPU-parallellism använder du flera processer. Detta speglar Pythons GIL-situation.
GVL: en tråd kör Ruby-kod åt gången
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.
