Go - Channel

Go - Channel 首页 / Golang入门教程 / Go - Channel

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

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

数据结构与算法之美 -〔王争〕

Android开发高手课 -〔张绍文〕

分布式技术原理与算法解析 -〔聂鹏程〕

苏杰的产品创新课 -〔苏杰〕

软件设计之美 -〔郑晔〕

手把手教你玩音乐 -〔邓柯〕

编程高手必学的内存知识 -〔海纳〕

Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕

结构执行力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)