var wg sync.WaitGroup
func main() {
wg.Add(2)
ch := make(chan int)
go study("liyiwei", ch)
go study("yiweili", ch)
ch <- 0
wg.Wait()
}
func study(name string, ch chan int) {
defer wg.Done()
for {
wisdom, ok := <-ch
if !ok {
fmt.Printf("%s wins\n", name)
return
}
n := rand.Intn(100)
if n%100 == 0 {
close(ch)
fmt.Printf("%s stopped study,he loss\n", name)
return
}
wisdom++
fmt.Printf("%s studyed %d\n", name, wisdom)
ch <- wisdom
}
}
实现二人学习比赛