GVL (Global VM Lock, dahulunya GIL) dalam MRI Ruby membenarkan hanya satu thread melaksanakan kod Ruby pada satu masa — jadi thread tidak menyediakan keselarian CPU yang sebenar. Tetapi GVL dilepaskan semasa I/O, jadi thread memang membantu untuk kerja terikat-I/O. Untuk keselarian CPU, anda menggunakan berbilang proses. Ini mencerminkan situasi GIL Python.
GVL: satu thread menjalankan kod Ruby pada satu masa
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.
