几个常见的并发模型

您所在的位置:网站首页 简述生产者消费者模型的优点 几个常见的并发模型

几个常见的并发模型

2023-07-26 20:02| 来源: 网络整理| 查看: 265

前面已经讲过很多Golang系列知识,包括并发,锁等内容,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html,

接下来讲几个golang常见的并发模型,今天先说说生产者消费者模型。

生产者消费者模型

生产者:发送数据端

消费者:接收数据端

缓冲区:   1. 解耦(降低生产者和消费者之间耦合度)

  2. 并发(生产者消费者数量不对等时,能保持正常通信)

  3. 缓存(生产者和消费者 数据处理速度不一致时,暂存数据)

如何实现?

生产者消费者模型是非常常见的并发模型,而且golang提供了chan类型,可以很方便的实现。

根据 golang的官方文档,使用chan就可以实现生产者和消费者之间的数据和状态同步。

通过chan在生产者和消费者之间传递数据(ch)和同步状态(done);chan作为参数传递时是引用传递,不需要使用指针;chan是协程安全的,多个goroutine之间不需要锁;chan的close事件可以被recv获取,close事件一定在正常数据读完之后,机制类似于read到EOF;示例代码:package main import "fmt" func Producer(ch chan int) {   for i := 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3