Go

Goroutine Temelleri

Goroutine'ler, go anahtar kelimesi, sync.WaitGroup, runtime.GOMAXPROCS, goroutine sızıntıları

20 mülakat soruları·
Junior
1

Go'da goroutine nedir?

Cevap

Goroutine, OS yerine Go runtime tarafından yönetilen ve diğer fonksiyonlarla eşzamanlı olarak çalışan bir fonksiyondur. Bir OS thread'ine (birkaç MB) kıyasla son derece hafiftir (birkaç KB başlangıç stack'i). Go scheduler binlerce hatta milyonlarca goroutine'i sınırlı sayıda OS thread'i üzerinde çoğullayabilir, bu da Go'da eşzamanlılığı çok erişilebilir kılar.

2

Go'da yeni bir goroutine nasıl başlatılır?

Cevap

go anahtar sözcüğünün ardından bir fonksiyon çağrısı gelmesi yeni bir goroutine başlatır. Örneğin, 'go myFunction()' veya anonim bir fonksiyon için 'go func() { ... }()'. Goroutine, çağıran kodla paralel olarak hemen çalışır. Uyarı: main fonksiyonu, başlatılan goroutine'lerin bitmesini otomatik olarak beklemez.

3

Bir goroutine ile bir OS thread'i arasındaki temel fark nedir?

Cevap

Bir goroutine yaklaşık 2 KB başlangıç stack'i kullanırken, bir OS thread'i genellikle 1-2 MB gerektirir. Go runtime, goroutine scheduling'ini kullanıcı alanında yönetir (M:N scheduling) ve binlerce goroutine'i birkaç OS thread'i üzerinde çoğullar. Bu, kaynaklarla sınırlı olan OS thread'lerinin aksine, sistemi aşırı yüklemeden milyonlarca goroutine oluşturmaya olanak tanır.

4

Ana program bir goroutine bitmeden önce sonlanırsa ne olur?

5

Go runtime, goroutine yürütmesini nasıl yönetir?

+17 mülakat soruları

Bir sonraki mülakatın için Go'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla