GVL (Global VM Lock, dříve GIL) v MRI Ruby umožňuje najednou spustit pouze jedno vlákno kódu Ruby — vlákna tedy neposkytují skutečný paralelismus CPU. Ale GVL je uvolněn během I/O, takže vlákna pomohou pro I/O-vázanou práci. Pro paralelismus CPU používáte více procesů. To se zrcadlí v situaci Pythonu s GIL.
GVL: jedno vlákno spouští kód Ruby najednou
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.
