关于单例模式的延伸

关于单例模式的延伸

老师您好!

学习完单例模式后,突然学生脑回路想到这个sync.pool这个从池子里存、取对象的函数

1.sync.pool这个函数,是否也可以帮助我们拿到单例对象,而不用实例化多次?

2.上述问题是否学生的理解有误,sync.pool这个函数只能帮助我们解决GC开销的问题?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
bobby 2023-02-16 13:56:16

sync.pool和这个单例模式看起来有点像,实际上不一样,sync.pool目的是为了反复使用已经申请的内存防止go的gc进行回收,是为了提升性能的, 单例模式是全局只有一个对象,不存在释放的问题,sync.pool中的用过之后可以放回池子中最重要目的是减少go的gc




  • 提问者 慕斯0066757 #1

    老师,学生在以后做初始化对象场景时,是否可以sync.Once + sync.pool结合一起使用?



    2023-02-16 14:07:39
  • 提问者 慕斯0066757 #2

    上述问题学生好像问错了,sync.Once和sync.pool分别是两个应用场景,只是真的很容易混淆。

    谢谢老师,明白了

    2023-02-16 14:13:56
  • bobby 回复 提问者 慕斯0066757 #3

    是的,这俩就是不一样的场景,比如你可以反复的重建一个对象,然后在sync.pool中新建和归还,虽然对象反复重建,但是这个对象不会反复gc,这个和是否单例不是一回事,单例对象一般是全局一个对象,这个对象不能被销毁的,也就是不存在归还的问题

    2023-02-16 16:25:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Go开发工程师全新版
  • 参与学习       489    人
  • 解答问题       559    个

风口上的技术,薪资水平遥遥领先,现在学习正值红利期! 未来3-5年,Go语言势必成为企业高性能项目中不可替代的语言 从基础到项目实战再到重构,对转行人员友好,真正从入门到精通!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师