A GVL (Global VM Lock, korábbi nevén GIL) az MRI Ruby-ban csak egy szál hajthat végre Ruby kódot egyszerre — így a szálak nem biztosítanak igazi CPU párhuzamosságot. A GVL azonban felszabadul az I/O alatt, így a szálak valóban segítenek az I/O-kötött munka esetén. CPU párhuzamossághoz több folyamatot használsz. Ez tükrözi a Python GIL-helyzetét.
A GVL: egyszerre csak egy szál futtatja a Ruby kódot
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.
