Sobes.tech
Junior — Middle

Goroutine içinde görevlerin yürütülmesi neden genellikle işletim sistemi thread'lerine göre daha hızlıdır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'daki goroutines genellikle işletim sistemi thread'lerinden daha hızlı çalışır, birkaç nedenden dolayı:

  1. Hafiflik: Goroutine'ler çok daha az bellek kullanır (genellikle birkaç kilobyte yığın), oysa sistem thread'leri çok daha fazla kaynak gerektirir.

  2. Go Planlayıcısı: Entegre planlayıcı, goroutine'lerin yürütülmesini sistem thread'leri üzerinde verimli bir şekilde dağıtarak, binlerce goroutine'yi aynı anda çalıştırmaya olanak tanır ve önemli ölçüde ek maliyet olmadan.

  3. Hızlı oluşturma ve bağlam değiştirme: Goroutine'lerin oluşturulması ve değiştirilmesi, işletim sistemi thread'leri arasında olduğundan çok daha hızlıdır, çünkü bu dil seviyesinde yönetilir ve çekirdek geçişi gerektirmez.

  4. Daha az sistem çağrısı: Go planlayıcısı, sistem çağrılarını en aza indirir, bu da ek maliyetleri azaltır.

Örnek:

func() {
    // Goroutine içinde yürütülen kod
}()

Bu nedenle, goroutine'ler, işletim sistemi thread'lerine kıyasla daha az kaynak kullanımıyla yüksek eşzamanlılık ve performans sağlar.