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个元素。
➡️

继续阅读