Wait Group

WaitGroup adalah mekanisme digolang yang berfungsi untuk melakukan sinkronisasi antara goroutine. WaitGroup memiliki cara kerja yang sama dengan sleep pada go routine. Jika menggunakan sleep, maka kita akan memaksa go routine untuk berhenti dalam waktu tertentu. Hal tersebut akan membuat program lebih lambat.

Contoh code wait group 1

package main

import (
	"fmt"
	"sync"
)

func main() {
	var wg sync.WaitGroup
	num := []int{1, 2, 3, 4, 5}

	for _, v := range num {
		wg.Add(1)
        
        go func (v int) {
            defer wg.Done()
            fmt.Println(v)
        }(v)
	}
	wg.Wait()
}

Contoh code wait group 2

Reference:

Last updated