Go语言编程从入门到精通(通道、缓冲通道、阻塞、控制、select)

本文介绍了Go语言中的通道(Channel)使用,包括无缓冲通道、缓冲通道及其在并发中的作用。通过示例展示了如何通过通道进行 Goroutine 间的通信,并探讨了阻塞和流程控制的概念,以及如何利用select语句根据不同的通道返回选择执行相应操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Go (或Golang )是Google 在2007 年开发的一种开源编程语言,出自Robert Griesemer 、Rob Pike 和Ken Thompson 之手。2009 年11 月10 日, Google Open Source Blog 向全球发布了这款语言:公告指出Go 的主要目标是“兼具Python 等动态语句的开发速度和C 或C ++等编译型语言的性能与安全性”。

通道

在上一篇中学到了Gotoutine,解决处理并行操作的问题,下面学习通道,通过通道来管理Goroutine之间的通信。

1. 使用通道

2个人持有1个联名卡,卡的余额100元,他们同时从账户中取100元钱,如果交易过程不加锁,那么虽然显示余额都有100元,实际上却是不够。如果在第1个交易时候,给账户加锁,交易完成后解锁,那么就可以避免这样的问题。

Go语言编程从入门到精通(通道、缓冲通道、阻塞、控制、select)

8行:在函数中,参数是通道变量

12行:执行结束后,函数向通道发送一条消息“listen finish”

15行:定义一个存储字符串的通道,赋给变量c

16行:用Goroutine执行函数listen

17行:等待通道传过来的消息,将消息赋给变量msg

18行:输出消息内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值