11、Context信息穿透上下文

你好,我是鸟窝。 在这节课正式开始之前,我想先带你看一个工作中的场景。 假设有一天你进入办公室,突然同事们都围住你,然后大喊“小王小王你最帅”,此时你可能一头雾水,只能尴尬地笑笑。为啥呢?因为你缺少上下文的信息,不知道之前发生了什么。 但是,如果同事...

10、Pool-性能提升大杀器

你好,我是鸟窝。 Go是一个自动垃圾回收的编程语言,采用三色并发标记算法标记对象并回收。和其它没有自动垃圾回收的编程语言不同,使用Go语言创建对象的时候,我们没有回收/释放的心理负担,想用就用,想创建就创建。 但是,如果你想使用Go开发一个...

9、如何实现线程安全的map类型?

你好,我是鸟窝。 哈希表(Hash Table)这个数据结构,我们已经非常熟悉了。它实现的就是key-value之间的映射关系,主要提供的方法包括Add、Lookup、Delete等。因为这种数据结构是一个基础的数据结构,每个key都会有一个唯一的索...

8、Once并发原语

你好,我是鸟窝。 这一讲我来讲一个简单的并发原语:Once。为什么要学习Once呢?我先给你答案:Once可以用来执行且仅仅执行一次动作,常常用于单例对象的初始化场景。 那这节课,我们就从对单例对象进行初始化这件事儿说起。 初始化单例资源有很多方法,...

7、条件变量的实现机制及避坑指南

你好,我是鸟窝。 在写Go程序之前,我曾经写了10多年的Java程序,也面试过不少Java程序员。在Java面试中,经常被问到的一个知识点就是等待/通知(wait/notify)机制。面试官经常会这样考察候选人:请实现一个限定容量...