Posts for: #源码分析

golang源码分析-Once

Once介绍

在项目开发中,我们经常会需要调用其他服务或初始化一些资源。此时就需要用到单例模式,通过一个全局变量,在资源首次被使用时服务会去初始化它,其他地方需要使用资源时就用这个全局变量。但是在多线程环境下,这个全局变量可能会被多个线程同时初始化,这时就需要用到sync.Once

[Read more]

golang源码分析-深入理解WaitGroup

WaitGroup介绍

实际开发中经常会碰到一种情况:一个聚合信息的接口(如app首页/用户信息等),需要查询一大堆数据,而这些数据都是分散在各个服务中。同步去一个一个查询会导致接口响应过长。于是很自然而然想到了并发查询。

[Read more]

golang源码分析-深入理解Mutex

前言

刚刚开始接触golang时,觉得mutex锁简单易用。到下个阶段自己觉得这种是悲观锁,效率很低。直到学习和了解它的原理才明白mutex是一个兼顾性能和公平的精妙设计。

[Read more]