GVL (Global VM Lock, પહેલાં GIL) MRI Ruby માં માત્ર એક સમયે એક થ્રેડને Ruby કોડ ચલાવવાની મંજૂરી આપે છે — તેથી થ્રેડ્સ સાચી CPU સમાંતરતા પ્રદાન કરતા નથી. પરંતુ GVL I/O દરમિયાન છોડવામાં આવે છે, તેથી થ્રેડ્સ હકીકતમાં I/O-બાધ્ય કાર્ય માટે મદદ કરે છે. CPU સમાંતરતા માટે, તમે બહુવિધ પ્રક્રિયાઓ વાપરો છો. આ Python ના GIL પરિસ્થિતિને પ્રતિબિંબિત કરે છે.
GVL: એક સમયે એક થ્રેડ Ruby કોડ ચલાવે છે
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.
