sync.Once的新扩展
💡
原文中文,约2600字,阅读约需6分钟。
📝
内容提要
Go 1.21新增了三个与sync.Once相关的函数,支持并发调用和多返回值,标准库中使用泛型,可使用go-tuple库实现多元素返回。
🎯
关键要点
- Go 1.21新增了三个与sync.Once相关的函数。
- sync.Once常用于实现单例模式,效率高。
- OnceFunc返回一个可以并发调用的函数,f只会被调用一次。
- OnceValue返回一个函数,返回f的返回值,多次调用返回同一个值。
- OnceValues与OnceValue类似,但返回两个参数。
- 这三个函数可以并发调用,且处理panic情况。
- 可以使用go-tuple库实现多元素返回,最多支持9个元素。
➡️