大家好,我是渔夫子。
今天给大家介绍的go channel的第二种应用:协程间同步信息。
通过channel,能够确保一个协程在另一个协程完成工作之后才能继续。如果需要在两个或多个协程之间共享数据的场景中,这种用法就特别有用,并且能够确保数据不会同时被多个协程修改非常重要。
我们先看一个简单的示例:
package main
import (
"fmt"
"time"
)
func worker(done chan bool) {
fmt.Print("working...")
time.Sleep(time.Second)
fmt.Println("done")
done