Go学习 Day14 Pool

84 阅读1分钟

sync.Pool数据类型用来保存一组可独立访问的临时对象。这里的“临时”的意思是sync.Pool这个数据类型的特点,也就是说它池化的对象会在未来的某个时候被毫无预兆地移除掉。

sync.Poll一共提供了三个方法,分别是

1New 用于创建新对象
2Get 用于获取对象
3)Put 使用完之后归还对象

sync.Poll存在的问题:

1)内存浪费
2)内存泄露

常用的一些开源库

https://github.com/vitessio/vitess/blob/main/go/bucketpool/bucketpool.go
https://github.com/valyala/bytebufferpool
https://github.com/fatih/pool
                https://github.com/valyala/fasthttp/blob/9f11af296864153ee45341d3f2fe0f5178fd6210/workerpool.go#L16
https://pkg.go.dev/github.com/gammazero/workerpool?utm_source=godoc
https://pkg.go.dev/github.com/ivpusic/grpool
https://pkg.go.dev/github.com/dpaks/goworkers?utm_source=godoc

此文章为2月Day14学习笔记,内容来源于极客时间《Go 并发编程实战课》