package main import ( "fmt" "time" "sync" ) func timedPrint(number int64, group *sync.WaitGroup) { time.Sleep(time.Duration(number) * time.Millisecond) fmt.Println(number) group.Done() } func timeSort(numbers []int64, group *sync.WaitGroup) { for _, number := range numbers { group.Add(1) go timedPrint(number, group) } } func main() { unsorted := []int64{10, 4, 20, 13, 41} var group sync.WaitGroup timeSort(unsorted, &group) group.Wait() }