GVL (Global VM Lock, dulunya GIL) dalam MRI Ruby memungkinkan hanya satu thread untuk menjalankan kode Ruby pada satu waktu — jadi thread tidak menyediakan true CPU parallelism. Namun GVL dilepaskan selama I/O, jadi thread memang membantu untuk pekerjaan I/O-bound. Untuk CPU parallelism, Anda menggunakan multiple processes. Ini mencerminkan situasi GIL milik Python.
GVL: satu thread menjalankan kode Ruby pada satu waktu
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.
