Sobes.tech
Senior

Горутинҳо дар вақти эҷод кардан ба кадом навбат мераванд — ба навбати маҳаллии ё глобалии нақшакашии Go?

sobes.tech AI

Ҷавоб аз AI

وقتی در Go یک goroutine ایجاد می‌شود، در صف اجرای محلی (local run queue) قرار می‌گیرد، که متعلق به یک M خاص است (ماشین، نخ سیستم).

رuntime Go از مدل M:N استفاده می‌کند، که در آن M نخ‌های سیستم و G goroutineها هستند. هر M دارای صف محلی خود برای اجرای goroutineها است. اگر صف محلی پر شود یا خالی باشد، برنامه‌ریز می‌تواند goroutineها را بین صف محلی و صف جهانی تعادل دهد.

بنابراین، goroutine جدید ابتدا در صف محلی برنامه‌ریز قرار می‌گیرد، که امکان استفاده مؤثر از کش پردازنده و کاهش هزینه‌های تغییر زمینه را فراهم می‌کند.