/images/hugo/avatar.png

go 分组操作的并发控制

1. 分组操作概述 共享资源保护、任务编排和消息传递是 Go 并发编程中常见的场景,而分组执行一批相同的或类似的任务则是任务编排中一类情形,本节我们来介

go CyclicBarrier 循环栅栏

1. CyclicBarrier 概述 CyclicBarrier 是一个可重用的栅栏并发原语,常常应用于重复进行一组 goroutine 同时执行的场景中。 CyclicBarrier允许一组 goroutine 彼此等待,到达一个共同的

go SingleFlight 请求合并

1. SingleFlight 栅栏概述 SingleFlight 的作用是将并发请求合并成一个请求,以减少对下层服务的压力。当多个 goroutine 同时调用同一个函数的时候,只让一个 goroutine 去调用这个函数,等到这个

go 信号量

1. 信号量概述 信号量(Semaphore)是用来控制多个 goroutine 同时访问多个资源的并发原语。最简单的信号量就是一个变量加一些并发控制的能力,更复杂的

go 内存模型

1. Go 内存模型概述 Go 内存模型 描述的是并发环境中多 goroutine 读相同变量的时候,变量的可见性条件。具体点说,就是指,在什么条件下,goroutine 在读取

Channel 应用

1. 使用反射操作 Channel 在学习如何使用 Channel 之前,我们来看看如何通过反射的方式执行 select 语句,这在处理很多的 case clause,尤其是不定长的 case clause 的时候,非常有