0、如何吃透Go并发编程

你好,我是晁岳攀,网名鸟窝。之前我在微博研发平台架构中心担任资深架构师,同时也是微服务框架rpcx的作者,欢迎来到“Go并发编程实战课”。 并发编程,为什么选Go?为什么要学Go并发呢?我想先和你聊聊我和Go结缘的经历。 作为一位老程序员,我在清华同...

Go 并发编程实战课

1、如何解决资源并发访问?

你好,我是鸟窝。 今天是我们Go并发编程实战课的第一讲,我们就直接从解决并发访问这个棘手问题入手。 说起并发访问问题,真是太常见了,比如多个goroutine并发更新同一个资源,像计数器;同时更新用户的账户信息;秒杀系统;往同一个buffer中并发写...

Go 并发编程实战课

2、Mutex庖丁解牛看实现

你好,我是鸟窝。 上一讲我们一起体验了Mutex的使用,竟是那么简单,只有简简单单两个方法,Lock和Unlock,进入临界区之前调用Lock方法,退出临界区的时候调用Unlock方法。这个时候,你一定会有一丝好奇:“它的实现是不是也很简单呢?” 其...

Go 并发编程实战课

3、Mutex:4种易错场景大盘点

你好,我是鸟窝。 上一讲,我带你一起领略了Mutex的架构演进之美,现在我们已经清楚Mutex的实现细节了。当前Mutex的实现貌似非常复杂,其实主要还是针对饥饿模式和公平性问题,做了一些额外处理。但是,我们在第一讲中已经体验过了,Mutex使用起来...

Go 并发编程实战课

4、骇客编程,如何拓展额外功能?

你好,我是鸟窝。 前面三讲,我们学习了互斥锁Mutex的基本用法、实现原理以及易错场景,可以说是涵盖了互斥锁的方方面面。如果你能熟练掌握这些内容,那么,在大多数的开发场景中,你都可以得心应手。 但是,在一些特定的场景中,这些基础功能是不足以应对的。这...

Go 并发编程实战课

5、读写锁的实现原理及避坑指南

你好,我是鸟窝。 在前面的四节课中,我们学习了第一个同步原语,即Mutex,我们使用它来保证读写共享资源的安全性。不管是读还是写,我们都通过Mutex来保证只有一个goroutine访问共享资源,这在某些情况下有点“浪费”。比如说,在写少读多的情况下...

Go 并发编程实战课