Sobes.tech
Senior

Goroutine oluşturulduğunda, Go planlayıcısının yerel mi yoksa küresel kuyruğuna mı gider?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da bir goroutine oluşturulduğunda, bu goroutine yerel yürütme kuyruğuna (local run queue) yerleştirilir, bu da belirli bir M'ye (makine, sistem akışı) aittir.

Go çalışma zamanı, M:N modelini kullanır; burada M sistem akışlarını, G ise goroutine'leri temsil eder. Her M'nin kendi yerel goroutine kuyruğu vardır. Eğer yerel kuyruk taşarsa veya boşsa, planlayıcı goroutine'leri yerel ve küresel kuyruklar arasında dengeleyebilir.

Bu nedenle, yeni goroutine önce planlayıcının yerel kuyruğuna yerleştirilir, bu da işlemci önbelleğinin verimli kullanılmasını sağlar ve bağlam değiştirme maliyetlerini azaltır.