go channel频道

【go channel频道】通道充当管道, 我们通过管道将键入的值从一个Go routine发送到另一个Go routine。由于在任何给定时间只有一个Go routine可以访问数据项, 因此可以保证同步。数据的所有权在不同的Go routine之间传递。因此, 通过设计, 它避免了共享内存的陷阱, 并防止了竞争情况。
Go频道示例

package main import "fmt" import "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 }

输出:
working...done

    推荐阅读