美文网首页
go 利用 sync.pool 实现对象的复用

go 利用 sync.pool 实现对象的复用

作者: wayyyy | 来源:发表于2022-05-04 15:58 被阅读0次

    最近做的对象存储,想着系统里面,存在大量的对象的构造,这里面涉及大量的对象的内存申请和释放。试着用 sync.Pool 来优化。

    type Object struct {
        ObjectName string
        BucketName string
        Pool string
        OwnerId string
        Size int64
        ObjectId string
        LastModifiedTime time.Time
        //...
    }
    

    创建对象池:
    只需要实现 New 函数即可。对象池中没有对象时,将会调用 New 函数创建。

    var ObjectPool = sync.Pool{
        New: func() interface{} {
            return new(Object)
        },
    }
    

    Get:

    object := ObjectPool.Get().(*Object)
    

    Put:

    studentPool.Put(object)
    

    测试:
    TODO

    相关文章

      网友评论

          本文标题:go 利用 sync.pool 实现对象的复用

          本文链接:https://www.haomeiwen.com/subject/ikjmyrtx.html