介绍下go的chan,chan可以做什么

本文阅读 2 分钟
首页 golang 正文
题目序号:(3281)
题目来源: 字节跳动
频次: 1

答案:重拾

1.如果说goroutine 是Go语言的并发体的话,那么chan就是它们之间的通信机制,一个channel是一个通信系统,它可以让一个goroutine通过它给另一个goroutine发送值消息,每个channel都有一个特定的类型,也就是channels可发送数据的类型。

2.任务定时:与timer结合,实现超时控制,实现定期执行某些任务。

3.通知作用:经常是关闭某个channel或者向channel发送一个元素,使得接收channel的那一方知道此消息,进而做一些其他的操作。

4.解耦生产方和消费方:降低消费者和生产者之间的耦合度。

5.控制并发数:有时需要定时执行几百个任务,但是并发数又不能太高,因为任务执行过程中依赖第三方的一些资源,对请求的速率有限制,这时就可以通过channel来控制并发数.

本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论