Özet - Goroutine'ler
- Go kursu
- Orta seviye
- Ders 6/80
- 4 dk
Goroutine'leri birleştirerek paralel bir iş yazarsın.
Özet - Goroutine'ler
Bu bölümde goroutine'leri öğrendin:
- go anahtar kelimesi ile başlatma
- Anonim fonksiyon ile kısa goroutine
- Parametre kopyalama ve döngüde güvenlik
- Ana goroutine ve bekleme gereksinimi
- WaitGroup ile production beklemesi
Şimdi bu kavramları birleştirerek paralel bir iş yazacaksın: goroutine başlat, WaitGroup ile bekle, fmt.Println ile durum yazdır.
Uygulama Paralel iş yazdır
main içine bir go func(){...}() ifadesi ve fmt.Println ile paralel tamam yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func main() {
go func() {
fmt.Println("paralel tamam")
}()
fmt.Println("paralel tamam")
}Beklenen çıktı
paralel tamam
Uygulama Paralel çıktı üret
main içine fmt.Println ile paralel iş yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func main() {
fmt.Println("paralel iş")
}Beklenen çıktı
paralel iş
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 WaitGroup kullanımı
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer ____()
fmt.Println("ok")
}()
wg.Wait()
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
fmt.Println("ok")
}()
wg.Wait()
Açıklama: Wait() ana programda, Done() goroutine içindedir.
2 Bölüm kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
go |
Başlatma |
goroutine |
Hafif iş parçacığı |
WaitGroup |
Bekleme |
channel |
İletişim |