GVL (Global VM Lock, পূর্বে GIL) MRI Ruby-তে একবারে শুধুমাত্র একটি thread Ruby কোড execute করতে পারে — তাই threads সত্যিকারের CPU parallelism প্রদান করে না। কিন্তু GVL I/O-এর সময় release হয়, তাই threads সত্যিই I/O-bound কাজের জন্য সাহায্য করে। CPU parallelism-এর জন্য, আপনি multiple processes ব্যবহার করেন। এটি Python-এর GIL পরিস্থিতি প্রতিফলিত করে।
GVL: একবারে একটি thread Ruby কোড run করে
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.
