printfcoder/stack-rpc-tutorials

part1 config配置Init加锁问题

godsoul opened this issue · 4 comments

m.Lock() defer m.Lock() if inited { log.Logf("[Init] 配置已经初始化过了") return }
初始化配置加了锁还加个标志,Init是启动时候显式调用的,有可能会并发执行吗?

Hi, 正常不会去并发, 也不会重复执行, 以防万一而已.

Hi, 正常不会去并发, 也不会重复执行, 以防万一而已.

感觉放默认init也挺好的,还能保证只执行一次

显式一般是内部服务分层,分模块时会如此,为了让开发团队知道服务启动的重要组件,做成init就隐藏了逻辑,反而不利于业务的传授

@printfcoder 这个 inted 是否可能使用 once.Do 替代呢?