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ı
}