Sobes.tech
Junior — Middle

Görevlerin yürütülmesi bağlamında, goroutine ile sistem iş parçacığı arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir goroutine, Go çalışma zamanı (runtime) tarafından yönetilen hafif bir yürütme birimidir, çok az bellek kullanır ve aynı anda çok sayıda başlatılabilir. Sistem iş parçacığı (thread), işletim sisteminin daha ağır bir planlama birimidir.

Ana farklar:

  • Goroutine'ler, sistem iş parçacıklarına göre çok daha hafiftir.
  • Goroutine planlaması, işletim sistemi yerine Go runtime içinde gerçekleşir.
  • Binlerce goroutine aynı anda çalışabilirken, genellikle oluşturma ve geçiş maliyetleri nedeniyle sistem iş parçacığı sayısı daha azdır.

Bir goroutine oluşturma örneği:

func görev() {
    fmt.Println("Görev yürütülüyor")
}

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

Bu şekilde, goroutine'ler daha az maliyetle çok sayıda görevi paralel olarak verimli bir şekilde yürütmeye olanak tanır.