通道同步
go
package main
import (
"fmt"
"time"
)
func worker(done chan bool) {
fmt.Print("working...")
time.Sleep(time.Second)
fmt.Println("done")
done <- true
}
func main() {
done := make(chan bool, 1)
go worker(done)
<-done
}这个例子的同步功能其实是利用 普通channel的阻塞机制。最后一个 <- done 其实是取值,只是没有任何变量接受而已