1、利用golang优雅的实现单实例
平时编写代码过程中,经常会遇到对于全局角度只需运行一次的代码,比如全局初始化操作,设计模式中的单例模式。针对单例模式,java中又出现了饿汉模式、懒汉模式,再配合synchronized同步关键字来实现。其目的无非就是将对象只初始化一次,而且最好保证在用到的时候再进行初始化,以避免初始化太早浪费资源,或者两次初始化破坏单例模式的实例唯一性。
Go语言的sync包中提供了一个Once类型来保证全局的唯一性操作,其通过 Do(f func()) 方法来实现,即使** f** 函数发生变化,其也不会被执行,下面我们来看一个小例子:
原作者:小碗汤
更多回帖