Sobes.tech
Junior — Middle

Goroutine'leri geleneksel uygulama ipliklerine göre daha verimli kılan nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da goroutine'ler geleneksel thread'lere kıyasla birkaç temel özelliği sayesinde daha etkilidir:

  • Hafiflik: Goroutine'ler çok az bellek kullanır (genellikle yaklaşık 2 KB yığın), oysa sistem thread'leri çok daha fazla bellek gerektirir.
  • Dil seviyesinde zamanlayıcı: Go'nun kendi goroutine zamanlayıcısı vardır, bu da onların sistem thread'leri üzerinde verimli bir şekilde dağıtılmasını sağlar ve binlerce goroutine'nin aynı anda çalışmasına olanak tanır, büyük maliyetler olmadan.
  • Hızlı oluşturma ve bağlam değiştirme: Goroutine'lerin oluşturulması ve arasında geçiş yapılması, işletim sistemi thread'leri arasında yapılandan çok daha hızlıdır, bu da çoklu görev maliyetlerini azaltır.

Goroutine oluşturma örneği:

func sayHello() {
    fmt.Println("Goroutine'den merhaba")
}

func main() {
    go sayHello() // goroutine başlat
    time.Sleep(time.Second) // goroutine'in tamamlanması için bekle
}