Go Channel应用:协程间信息同步

大家好,我是渔夫子。

今天给大家介绍的go channel的第二种应用:协程间同步信息。

通过channel,能够确保一个协程在另一个协程完成工作之后才能继续。如果需要在两个或多个协程之间共享数据的场景中,这种用法就特别有用,并且能够确保数据不会同时被多个协程修改非常重要。

我们先看一个简单的示例:

package main

import (
"fmt"
"time"
)

func worker(done chan bool) {
fmt.Print("working...")
time.Sleep(time.Second)
fmt.Println("done")

done