协程与通道

在go语言中,与线程比起来,更喜欢用协程这个概念,协程简介:https://www.cnblogs.com/chenny7/p/4498322.html 协程与通道经常搭配使用,使用go关键字开启一个协程,使用chan定义一个通道,用法如下:

关于在一个循环里面开启协程即创建多个协程,一个有意思的例子在这篇文章里面有提到golang for循环里面创建协程问题的研究 - morning_sun - 博客园

go语言中一个重要的特性就是通道chan,通道默认是阻塞且无缓冲的(发送方会阻塞直到接收方从通道中取了值),使用通道时要注意以下几点:

1. 需要使用make来进行初始化,没有初始化在大多数情况下会导致错误,也有特例,参考文章:

[go语言]channel的一个“奇怪”特性 - Go语言中文网 - Golang中文社区

2. 通道分为有缓冲和无缓冲两类,且这两类差别很大,参考文章:

对golang的Channel初始化的有缓存与无缓存解释 - Go语言中文网 - Golang中文社区

3. 单向通道和双向通道:

Go-单向channel_go 单向通道_星星点点洲的博客-CSDN博客 

参考资料:

golang 线程与通道 - Go语言中文网 - Golang中文社区

go语言通道channel使用总结_five-zh的博客-CSDN博客

Go语言实战-- 通道_go语言 通道等于通道_harderczw的博客-CSDN博客

all goroutines are asleep - deadlock!_benben_2015的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值