GVL (Global VM Lock, tidligere GIL) i MRI Ruby tillader kun én tråd at udføre Ruby-kode ad gangen — så tråde giver ikke ægte CPU-parallelisme. Men GVL frigives under I/O, så tråde hjælper faktisk med I/O-bundet arbejde. For CPU-parallelisme bruger du flere processer. Dette svarer til Pythons GIL-situation.
GVL: én tråd kører Ruby-kode ad gangen
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.
