并发

package main  
  
import (  
    "fmt"  
    "sync"    "testing"    "time")  
  
func doSomething(index int, wg *sync.WaitGroup) {  
    defer wg.Done()  
    fmt.Printf("before %d\n", index)  
    time.Sleep(time.Second * 3)  
    fmt.Printf("after %d\n", index)  
}  
  
func TestWg(t *testing.T) {  
    wg := sync.WaitGroup{}  
    wgNum := 3  
    wg.Add(wgNum)  
  
    for i := 0; i < wgNum; i++ {  
       go doSomething(i, &wg)  
    }  
  
    wg.Wait()  
}