Sobes.tech
Middle+

Goroutine nedir ve iç yapısı nasıldır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Goroutinler, Go dilinde hafif yürütme dizileridir ve dilin çalışma zamanı tarafından işletim sisteminden bağımsız olarak yönetilirler. Sistem dizilerinden farklı olarak, goroutinlerin çok küçük bir yığını vardır (birkaç kilobayt ile başlar) ve dinamik olarak genişleyebilirler.

Bir goroutin içinde, g yapısı (goroutine) ile temsil edilir ve durum, yığın, kayıtlar ve diğer bilgileri içerir. Go'nun zamanlayıcısı (scheduler), M:N modeli kullanarak goroutinler arasında geçişi yönetir; burada M sistem dizileri (OS dizileri) ve N goroutinlerdir.

Zamanlayıcı, goroutinleri sistem dizileri arasında dağıtarak, işletim sistemi dizilerinin oluşturulması ve değiştirilmesi maliyetleri olmadan çok işlemciliği verimli kullanmayı sağlar. Bu, çalışma zamanı içindeki kooperatif ve öncelikli çoklu görev yapma ile başarılır.

Bir goroutine oluşturma örneği:

func sayHello() {
    fmt.Println("Merhaba, goroutine'den")
}

func main() {
    go sayHello() // goroutine başlat
    time.Sleep(time.Second) // goroutine'nin çalışması için zaman tanı
}