Go学习 Day19 扩展并发原语

226 阅读1分钟

比较常用的扩展的并发原语主要包括:SingleFlight 和 CyclicBarrier

SingleFlight的作用是将一个并发请求合并成一个,在缓存不命中穿透到db时广泛使用,其主要的方法🈶:

1Do,该方法执行一个函数,并返回函数执行的结果,同样的key的函数只执行一次
2)DoChan,方法的作用同Do方法,只是返回值为chan类型
3)Forget,该方法主要用于删除key

CyclicBarrier的作用是用来控制一组请求同时执行,固定数量的 goroutine 等待同一个执行点,其主要方法包括:

1New:创建CyclicBarrier并且指定循环栅栏参与者的数量
2)NewWithAction,提供一个函数,可以在每一次到达执行点的时候执行一次

此文章为2月Day19学习笔记,内容来源于极客时间《Go 并发编程实战课》