首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go程序例子(29):通道

Go程序例子(29):通道

原创
作者头像
用户11078756
发布2024-12-17 14:41:08
发布2024-12-17 14:41:08
1780
举报
文章被收录于专栏:go程序例子go程序例子

通道(Channels)是连接并发 goroutine 的管道。你可以从一个 goroutine 向通道发送值,并在另一个 goroutine 中接收这些值。

代码语言:go
复制
package main

import "fmt"

func main() {
	// 要创建一个新的通道,可以使用 make(chan val-type)。通道的类型由它传递的值的类型决定。
    messages := make(chan string)
	// 要使用 channel <- 语法将值发送到通道,你可以像下面这样操作。在这个例子中,我们从一个新的 goroutine 向 messages 通道发送 "ping":
    go func() { messages <- "ping" }()
	// <-channel 语法用于从通道接收值。在下面的示例中,我们将接收之前发送的 "ping" 消息并将其打印出来:
    msg := <-messages
    fmt.Println(msg)
}

当我们运行这个程序时,"ping" 消息会成功地通过通道从一个 goroutine 传递到另一个 goroutine。 运行结果:

代码语言:javascript
复制
$ go run channels.go 
ping

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档