18、用什么并发原语处理一组子任务?你好,我是鸟窝。 共享资源保护、任务编排和消息传递是Go并发编程中常见的场景,而分组执行一批相同的或类似的任务则是任务编排中一类情形,所以,这节课,我专门来介绍一下分组编排的一些常用场景和并发原语,包括ErrGroup、gollback、Hunch和...2025-10-28Go 并发编程实战课
17、请求合并和循环栅栏该怎么用?你好,我是鸟窝。 这节课,我来给你介绍两个非常重要的扩展并发原语:SingleFlight和CyclicBarrier。SingleFlight的作用是将并发请求合并成一个请求,以减少对下层服务的压力;而CyclicBarrier是一个可重用的栅栏并...2025-10-28Go 并发编程实战课
16、一篇文章搞懂信号量Semaphore你好,我是鸟窝。 在前面的课程里,我们学习了标准库的并发原语、原子操作和Channel,掌握了这些,你就可以解决80%的并发编程问题了。但是,如果你要想进一步提升你的并发编程能力,就需要学习一些第三方库。 所以,在接下来的几节课里,我会给你分享Go官...2025-10-28Go 并发编程实战课
15、Go如何保证并发读写的顺序?你好,我是鸟窝。 Go官方文档里专门介绍了Go的内存模型,你不要误解这里的内存模型的含义,它并不是指Go对象的内存分配、内存回收和内存整理的规范,它描述的是并发环境中多goroutine读相同变量的时候,变量的可见性条件。具体点说,就是指,在什么条件...2025-10-28Go 并发编程实战课
14、Channel典型的应用模式你好,我是鸟窝。 前一讲,我介绍了Channel的基础知识,并且总结了几种应用场景。这一讲,我将通过实例的方式,带你逐个学习Channel解决这些问题的方法,帮你巩固和完全掌握它的用法。 在开始上课之前,我先补充一个知识点:通过反射的方式执行sele...2025-10-28Go 并发编程实战课
13、另辟蹊径,解决并发问题你好,我是鸟窝。 Channel是Go语言内建的first-class类型,也是Go语言与众不同的特性之一。Go语言的Channel设计精巧简单,以至于也有人用其它语言编写了类似Go风格的Channel库,比如docker/libchan、...2025-10-28Go 并发编程实战课