CodeBlanks Logo Icon CodeBlanks

Özet - Goroutine'ler

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

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
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

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
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ı

Soru
var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer ____()
    fmt.Println("ok")
}()
wg.Wait()
Cevap
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

Orta seviye bölümündeki tüm dersler