虚心河马

文章
10
资源
0
加入时间
3年0月9天

golang once 理解 原理使用场景原理参考理解

使用场景经常用于初始化某些配置,如果不希望在init的时候就初始化而是用到的时候再懒加载,可以使用once。原理参考https://zhuanlan.zhihu.com/p/44360489理解主要是用了一个mutex和一个原子int。个人理解:原子int的成本比mutex低,用于快速判断是否要执行once里的函数最终互斥主要还是靠mutex。看注释的时候遇到一个问题:这里说如果函数f panic了的话,就认为返回了,未来的调用会返回,不会调用f。好奇的是,如果panic了应该整个协程