GoChannel

/ / GoChannel

通道充当管道,我们通过管道将键入的值从一个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

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

Midjourney入门实践课 -〔Jovi〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

AI大模型系统实战 -〔Tyler〕

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

深入C语言和程序运行原理 -〔于航〕

Web安全攻防实战 -〔王昊天〕

DDD实战课 -〔欧创新〕

零基础学Python -〔尹会生〕

左耳听风 -〔陈皓〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者