36 lines
477 B
Go
36 lines
477 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"sync"
|
||
|
)
|
||
|
|
||
|
// START OMIT
|
||
|
|
||
|
func main() {
|
||
|
r := []int{1, 2, 3, 4}
|
||
|
var group sync.WaitGroup
|
||
|
for _, p := range r {
|
||
|
group.Add(1)
|
||
|
go func(p int) {
|
||
|
defer group.Done()
|
||
|
fmt.Println(p)
|
||
|
}(p)
|
||
|
fmt.Println("wait")
|
||
|
group.Wait() // HL
|
||
|
}
|
||
|
fmt.Println("done\n")
|
||
|
for _, p := range r {
|
||
|
group.Add(1)
|
||
|
go func(p int) {
|
||
|
defer group.Done()
|
||
|
fmt.Println(p)
|
||
|
}(p)
|
||
|
}
|
||
|
fmt.Println("wait")
|
||
|
group.Wait() // HL
|
||
|
fmt.Println("done")
|
||
|
}
|
||
|
|
||
|
// END OMIT
|