gitlab.com/Raven-IO/raven-delve@v1.22.4/_fixtures/teststepconcurrent.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "time" 6 "sync" 7 ) 8 9 var v int = 99 10 var wg sync.WaitGroup 11 var s string 12 13 func Foo(x, y int) (z int) { 14 //s = fmt.Sprintf("x=%d, y=%d, z=%d\n", x, y, z) 15 z = x + y 16 return 17 } 18 19 func Threads(fn func(x, y int) int) { 20 for j := 0; j < 100; j++ { 21 wg.Add(1) 22 go func() { 23 for k := 0; k < 100; k++ { 24 fn(1, 2) 25 time.Sleep(10 * time.Millisecond) 26 } 27 wg.Done() 28 }() 29 } 30 } 31 32 func main() { 33 x := v 34 y := x * x 35 var z int 36 Threads(Foo) 37 for i := 0; i < 100; i++ { 38 z = Foo(x, y) 39 } 40 fmt.Printf("z=%d\n", z) 41 wg.Wait() 42 }