23、掌握 core.async 实现并发进程

掌握 core.async 实现并发进程

1. 缓冲区的使用

在并发编程中,缓冲区是一个重要的概念。有两种常见的缓冲区:滑动缓冲区(sliding buffer)和丢弃缓冲区(dropping buffer)。滑动缓冲区以先进先出的方式丢弃值,而丢弃缓冲区则以后进先出的方式丢弃值。这两种缓冲区都不会使 >!! 操作阻塞。

以番茄酱厨师为例,使用缓冲区就像厨师有一个架子来放置番茄酱批次。如果使用普通缓冲区,架子满了厨师就得等待空间;使用滑动缓冲区,架子满时会扔掉最旧的一批番茄酱,然后将新批次放入空位;使用丢弃缓冲区,则会把最新鲜的一批番茄酱从架子上拿掉,放入新批次。

缓冲区是核心模型的细化:进程是独立的、并发执行的逻辑单元,对事件做出响应。可以使用 go 块创建进程,并通过通道(channel)进行事件通信。

2. 阻塞与挂起

core.async 中, take 函数 < put 函数 > 都有单感叹号和双感叹号两种形式。使用规则如下:
| 操作 | go 块内 | go 块外 |
| ---- | ---- | ---- |
| put | >! >!! | >!! |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值